# Agent Platform API . interactions

## Instance Methods

Cancels an interaction.

Close httplib2 connections.

Deletes an interaction.

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

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.
        "deep_research_config": { # Configuration for the Deep Research agent.
          "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamic_config": { # Configuration for dynamic agents.
          "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "content": { # The content of the response. # The content for the interaction.
        "audio": { # An audio content block.
          "channels": 42, # The number of audio channels.
          "data": "A String", # The audio content.
          "mime_type": "A String", # The mime type of the audio.
          "sample_rate": 42, # The sample rate of the audio.
          "uri": "A String", # The URI of the audio.
        },
        "document": { # A document content block.
          "data": "A String", # The document content.
          "mime_type": "A String", # The mime type of the document.
          "uri": "A String", # The URI of the document.
        },
        "image": { # An image content block.
          "data": "A String", # The image content.
          "mime_type": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "end_index": 42, # End of the attributed segment, exclusive.
              "file_citation": { # A file citation annotation. # A file citation annotation.
                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "document_uri": "A String", # The URI of the file.
                "file_name": "A String", # The name of the file.
                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                "page_number": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "place_citation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "review_id": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                "title": "A String", # The title of the URL.
                "url": "A String", # The URL.
              },
            },
          ],
          "text": "A String", # Required. The text content.
        },
        "thought": { # A thought content block.
          "signature": "A String", # Signature to match the backend source to be part of the generation.
          "summary": [ # A summary of the thought.
            {
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "toolCall": { # Tool call content.
          "codeExecutionCall": { # Code execution content.
            "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
              "code": "A String", # The code to be executed.
              "language": "A String", # Programming language of the `code`.
            },
          },
          "fileSearchCall": { # File Search content.
          },
          "functionCall": { # A function tool call content block.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool to call.
          },
          "googleMapsCall": { # Google Maps content.
            "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
              "queries": [ # The queries to be executed.
                "A String",
              ],
            },
          },
          "googleSearchCall": { # Google Search content.
            "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
              "queries": [ # Web search queries for the following-up web search.
                "A String",
              ],
            },
            "search_type": "A String", # The type of search grounding enabled.
          },
          "id": "A String", # Required. A unique ID for this specific tool call.
          "mcpServerToolCall": { # MCPServer tool call content.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "server_name": "A String", # Required. The name of the used MCP server.
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextCall": { # URL context content.
            "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
              "urls": [ # The URLs to fetch.
                "A String",
              ],
            },
          },
        },
        "toolResult": { # Tool result content.
          "call_id": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "is_error": True or False, # Whether the code execution resulted in an error.
            "result": "A String", # Required. The output of the code execution.
          },
          "fileSearchResult": { # File Search result content.
            "result": [ # Optional. The results of the File Search.
              { # The result of the File Search.
              },
            ],
          },
          "functionResult": { # A function tool result content block.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "is_error": True or False, # Whether the tool call resulted in an error.
            "name": "A String", # The name of the tool that was called.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result content.
            "result": [ # Required. The results of the Google Maps.
              { # The result of the Google Maps.
                "places": [ # The places that were found.
                  {
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "is_error": True or False, # Whether the Google Search resulted in an error.
            "result": [ # Required. The results of the Google Search.
              { # The result of the Google Search.
                "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result content.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "server_name": "A String", # The name of the used MCP server.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "is_error": True or False, # Whether the URL context resulted in an error.
            "result": [ # Required. The results of the URL context.
              { # The result of the URL context.
                "status": "A String", # The status of the URL retrieval.
                "url": "A String", # The URL that was fetched.
              },
            ],
          },
        },
        "video": { # A video content block.
          "data": "A String", # The video content.
          "mime_type": "A String", # The mime type of the video.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the video.
        },
      },
      "contentList": { # A list of Content. # The inputs for the interaction.
        "contents": [ # The contents of the list.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
      "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
        "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "image_config": { # The configuration for image interaction. # Configuration for image interaction.
            "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
            "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "max_output_tokens": 42, # The maximum number of tokens to include in the response.
          "seed": 42, # Seed used in decoding for reproducibility.
          "speech_config": [ # Configuration for speech interaction.
            { # The configuration for speech interaction.
              "language": "A String", # The language of the speech.
              "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
              "voice": "A String", # The voice of the speaker.
            },
          ],
          "stop_sequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinking_level": "A String", # The level of thought tokens that the model should generate.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
              "mode": "A String", # The mode of the tool choice.
              "tools": [ # The names of the allowed tools.
                "A String",
              ],
            },
          },
          "toolChoiceMode": "A String", # The mode of the tool choice.
          "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
        },
        "model": "A String", # The name of the `Model` used for generating the completion.
      },
      "outputs": [ # Output only. Responses from the model.
        { # The content of the response.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mime_type": "A String", # The mime type of the audio.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String", # The URI of the audio.
          },
          "document": { # A document content block.
            "data": "A String", # The document content.
            "mime_type": "A String", # The mime type of the document.
            "uri": "A String", # The URI of the document.
          },
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
          "thought": { # A thought content block.
            "signature": "A String", # Signature to match the backend source to be part of the generation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call content.
            "codeExecutionCall": { # Code execution content.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search content.
            },
            "functionCall": { # A function tool call content block.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps content.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search content.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call content.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context content.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result content.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result content.
              "result": [ # Optional. The results of the File Search.
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": { # A function tool result content block.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result content.
              "result": [ # Required. The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result content.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": { # A video content block.
            "data": "A String", # The video content.
            "mime_type": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
      "responseFormatList": {
        "response_formats": [
          {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
          "delivery": "A String", # The delivery mode for the audio output.
          "mime_type": "A String", # The MIME type of the audio output.
          "sample_rate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspect_ratio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "image_size": "A String", # The size of the image output.
          "mime_type": "A String", # The MIME type of the image output.
        },
        "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
            { # Represents a single field in a struct.
              "name": "A String",
              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                "boolValue": True or False, # Represents a boolean value.
                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                  "values": [ # Repeated field of dynamically typed values.
                    # Object with schema name: GenaiValue
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mime_type": "A String", # The MIME type of the text output.
          "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "video": { # Configuration for video output format.
        },
      },
      "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
        "boolValue": True or False, # Represents a boolean value.
        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
          "values": [ # Repeated field of dynamically typed values.
            # Object with schema name: GenaiValue
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
      },
      "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
      "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
        "A String",
      ],
      "role": "A String", # Output only. The role of the interaction.
      "status": "A String", # Required. Output only. The status of the interaction.
      "stepList": { # A list of Steps. # Input only. The steps for the interaction.
        "steps": [ # The steps of the list.
          { # A step in the interaction.
            "modelOutput": { # Output generated by the model.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "thought": { # A thought step.
              "signature": "A String", # A signature hash for backend validation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call step.
              "codeExecutionCall": { # Code execution call step.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search call step.
              },
              "functionCall": { # A function tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps call step.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search call step.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context call step.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result step.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result step.
              },
              "functionResult": { # Result of a function tool call.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "place_id": "A String",
                        "review_snippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widget_context_token": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "userInput": { # Input provided by the user.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
          },
        ],
      },
      "steps": [ # Output only. The steps that make up the interaction.
        { # A step in the interaction.
          "modelOutput": { # Output generated by the model.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "thought": { # A thought step.
            "signature": "A String", # A signature hash for backend validation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call step.
            "codeExecutionCall": { # Code execution call step.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search call step.
            },
            "functionCall": { # A function tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps call step.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search call step.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context call step.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result step.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result step.
            },
            "functionResult": { # Result of a function tool call.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "place_id": "A String",
                      "review_snippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widget_context_token": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "userInput": { # Input provided by the user.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "system_instruction": "A String", # System instruction for the interaction.
      "tools": [ # A list of tool declarations the model may call during interaction.
        { # A tool that can be used by the model.
          "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
          },
          "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
            "environment": "A String", # The environment being operated.
            "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
              "A String",
            ],
          },
          "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
            "file_search_store_names": [ # The file search store names to search.
              "A String",
            ],
            "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "top_k": 42, # The number of semantic retrieval chunks to retrieve.
          },
          "function": { # A tool that can be used by the model. # A function that can be used by the model.
            "description": "A String", # A description of the function.
            "name": "A String", # The name of the function.
            "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
              "boolValue": True or False, # Represents a boolean value.
              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                "values": [ # Repeated field of dynamically typed values.
                  # Object with schema name: GenaiValue
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
            },
          },
          "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
            "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
            "latitude": 3.14, # The latitude of the user's location.
            "longitude": 3.14, # The longitude of the user's location.
          },
          "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
            "search_types": [ # The types of search grounding to enable.
              "A String",
            ],
          },
          "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
            "allowed_tools": [ # The allowed tools.
              { # The configuration for allowed tools.
                "mode": "A String", # The mode of the tool choice.
                "tools": [ # The names of the allowed tools.
                  "A String",
                ],
              },
            ],
            "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
              "a_key": "A String",
            },
            "name": "A String", # The name of the MCPServer.
            "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
          },
          "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
            "retrieval_types": [ # The types of file retrieval to enable.
              "A String",
            ],
            "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
              "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                "A String",
              ],
              "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
            },
          },
          "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
          },
        },
      ],
      "turnList": { # A list of Turns. # The turns for the interaction.
        "turns": [
          {
            "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
              "contents": [ # The contents of the list.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "contentString": "A String", # The content of the turn. A single string.
            "role": "A String", # The originator of this turn. Must be user for input or model for model output.
          },
        ],
      },
      "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
        "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "grounding_tool_count": [ # Grounding tool count.
          { # The number of grounding tool counts.
            "count": 42, # The number of grounding tool counts.
            "type": "A String", # The grounding tool type associated with the count.
          },
        ],
        "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "total_input_tokens": 42, # Number of tokens in the prompt (context).
        "total_output_tokens": 42, # Total number of tokens across all the generated responses.
        "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
        "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
      },
    }

`close()`

    Close httplib2 connections.

`delete(name, x__xgafv=None)`

    Deletes an interaction.

    Args:
      name: string, Required. The name of the interaction to delete. 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:

        { # Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.
      "contentType": "A String", # The HTTP Content-Type header value specifying the content type of the body.
      "data": "A String", # The HTTP request/response body as raw binary.
      "extensions": [ # Application specific response metadata. Must be set in the first response for streaming APIs.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    }

`getPoll(name, include_input=None, last_event_id=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)
      include_input: boolean, Optional. If true, includes the input in the response.
      last_event_id: 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.
        "deep_research_config": { # Configuration for the Deep Research agent.
          "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamic_config": { # Configuration for dynamic agents.
          "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "content": { # The content of the response. # The content for the interaction.
        "audio": { # An audio content block.
          "channels": 42, # The number of audio channels.
          "data": "A String", # The audio content.
          "mime_type": "A String", # The mime type of the audio.
          "sample_rate": 42, # The sample rate of the audio.
          "uri": "A String", # The URI of the audio.
        },
        "document": { # A document content block.
          "data": "A String", # The document content.
          "mime_type": "A String", # The mime type of the document.
          "uri": "A String", # The URI of the document.
        },
        "image": { # An image content block.
          "data": "A String", # The image content.
          "mime_type": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "end_index": 42, # End of the attributed segment, exclusive.
              "file_citation": { # A file citation annotation. # A file citation annotation.
                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "document_uri": "A String", # The URI of the file.
                "file_name": "A String", # The name of the file.
                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                "page_number": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "place_citation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "review_id": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                "title": "A String", # The title of the URL.
                "url": "A String", # The URL.
              },
            },
          ],
          "text": "A String", # Required. The text content.
        },
        "thought": { # A thought content block.
          "signature": "A String", # Signature to match the backend source to be part of the generation.
          "summary": [ # A summary of the thought.
            {
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "toolCall": { # Tool call content.
          "codeExecutionCall": { # Code execution content.
            "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
              "code": "A String", # The code to be executed.
              "language": "A String", # Programming language of the `code`.
            },
          },
          "fileSearchCall": { # File Search content.
          },
          "functionCall": { # A function tool call content block.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool to call.
          },
          "googleMapsCall": { # Google Maps content.
            "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
              "queries": [ # The queries to be executed.
                "A String",
              ],
            },
          },
          "googleSearchCall": { # Google Search content.
            "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
              "queries": [ # Web search queries for the following-up web search.
                "A String",
              ],
            },
            "search_type": "A String", # The type of search grounding enabled.
          },
          "id": "A String", # Required. A unique ID for this specific tool call.
          "mcpServerToolCall": { # MCPServer tool call content.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "server_name": "A String", # Required. The name of the used MCP server.
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextCall": { # URL context content.
            "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
              "urls": [ # The URLs to fetch.
                "A String",
              ],
            },
          },
        },
        "toolResult": { # Tool result content.
          "call_id": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "is_error": True or False, # Whether the code execution resulted in an error.
            "result": "A String", # Required. The output of the code execution.
          },
          "fileSearchResult": { # File Search result content.
            "result": [ # Optional. The results of the File Search.
              { # The result of the File Search.
              },
            ],
          },
          "functionResult": { # A function tool result content block.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "is_error": True or False, # Whether the tool call resulted in an error.
            "name": "A String", # The name of the tool that was called.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result content.
            "result": [ # Required. The results of the Google Maps.
              { # The result of the Google Maps.
                "places": [ # The places that were found.
                  {
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "is_error": True or False, # Whether the Google Search resulted in an error.
            "result": [ # Required. The results of the Google Search.
              { # The result of the Google Search.
                "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result content.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "server_name": "A String", # The name of the used MCP server.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "is_error": True or False, # Whether the URL context resulted in an error.
            "result": [ # Required. The results of the URL context.
              { # The result of the URL context.
                "status": "A String", # The status of the URL retrieval.
                "url": "A String", # The URL that was fetched.
              },
            ],
          },
        },
        "video": { # A video content block.
          "data": "A String", # The video content.
          "mime_type": "A String", # The mime type of the video.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the video.
        },
      },
      "contentList": { # A list of Content. # The inputs for the interaction.
        "contents": [ # The contents of the list.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
      "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
        "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "image_config": { # The configuration for image interaction. # Configuration for image interaction.
            "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
            "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "max_output_tokens": 42, # The maximum number of tokens to include in the response.
          "seed": 42, # Seed used in decoding for reproducibility.
          "speech_config": [ # Configuration for speech interaction.
            { # The configuration for speech interaction.
              "language": "A String", # The language of the speech.
              "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
              "voice": "A String", # The voice of the speaker.
            },
          ],
          "stop_sequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinking_level": "A String", # The level of thought tokens that the model should generate.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
              "mode": "A String", # The mode of the tool choice.
              "tools": [ # The names of the allowed tools.
                "A String",
              ],
            },
          },
          "toolChoiceMode": "A String", # The mode of the tool choice.
          "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
        },
        "model": "A String", # The name of the `Model` used for generating the completion.
      },
      "outputs": [ # Output only. Responses from the model.
        { # The content of the response.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mime_type": "A String", # The mime type of the audio.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String", # The URI of the audio.
          },
          "document": { # A document content block.
            "data": "A String", # The document content.
            "mime_type": "A String", # The mime type of the document.
            "uri": "A String", # The URI of the document.
          },
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
          "thought": { # A thought content block.
            "signature": "A String", # Signature to match the backend source to be part of the generation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call content.
            "codeExecutionCall": { # Code execution content.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search content.
            },
            "functionCall": { # A function tool call content block.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps content.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search content.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call content.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context content.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result content.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result content.
              "result": [ # Optional. The results of the File Search.
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": { # A function tool result content block.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result content.
              "result": [ # Required. The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result content.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": { # A video content block.
            "data": "A String", # The video content.
            "mime_type": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
      "responseFormatList": {
        "response_formats": [
          {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
          "delivery": "A String", # The delivery mode for the audio output.
          "mime_type": "A String", # The MIME type of the audio output.
          "sample_rate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspect_ratio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "image_size": "A String", # The size of the image output.
          "mime_type": "A String", # The MIME type of the image output.
        },
        "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
            { # Represents a single field in a struct.
              "name": "A String",
              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                "boolValue": True or False, # Represents a boolean value.
                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                  "values": [ # Repeated field of dynamically typed values.
                    # Object with schema name: GenaiValue
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mime_type": "A String", # The MIME type of the text output.
          "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "video": { # Configuration for video output format.
        },
      },
      "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
        "boolValue": True or False, # Represents a boolean value.
        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
          "values": [ # Repeated field of dynamically typed values.
            # Object with schema name: GenaiValue
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
      },
      "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
      "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
        "A String",
      ],
      "role": "A String", # Output only. The role of the interaction.
      "status": "A String", # Required. Output only. The status of the interaction.
      "stepList": { # A list of Steps. # Input only. The steps for the interaction.
        "steps": [ # The steps of the list.
          { # A step in the interaction.
            "modelOutput": { # Output generated by the model.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "thought": { # A thought step.
              "signature": "A String", # A signature hash for backend validation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call step.
              "codeExecutionCall": { # Code execution call step.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search call step.
              },
              "functionCall": { # A function tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps call step.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search call step.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context call step.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result step.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result step.
              },
              "functionResult": { # Result of a function tool call.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "place_id": "A String",
                        "review_snippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widget_context_token": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "userInput": { # Input provided by the user.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
          },
        ],
      },
      "steps": [ # Output only. The steps that make up the interaction.
        { # A step in the interaction.
          "modelOutput": { # Output generated by the model.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "thought": { # A thought step.
            "signature": "A String", # A signature hash for backend validation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call step.
            "codeExecutionCall": { # Code execution call step.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search call step.
            },
            "functionCall": { # A function tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps call step.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search call step.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context call step.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result step.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result step.
            },
            "functionResult": { # Result of a function tool call.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "place_id": "A String",
                      "review_snippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widget_context_token": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "userInput": { # Input provided by the user.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "system_instruction": "A String", # System instruction for the interaction.
      "tools": [ # A list of tool declarations the model may call during interaction.
        { # A tool that can be used by the model.
          "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
          },
          "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
            "environment": "A String", # The environment being operated.
            "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
              "A String",
            ],
          },
          "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
            "file_search_store_names": [ # The file search store names to search.
              "A String",
            ],
            "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "top_k": 42, # The number of semantic retrieval chunks to retrieve.
          },
          "function": { # A tool that can be used by the model. # A function that can be used by the model.
            "description": "A String", # A description of the function.
            "name": "A String", # The name of the function.
            "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
              "boolValue": True or False, # Represents a boolean value.
              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                "values": [ # Repeated field of dynamically typed values.
                  # Object with schema name: GenaiValue
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
            },
          },
          "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
            "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
            "latitude": 3.14, # The latitude of the user's location.
            "longitude": 3.14, # The longitude of the user's location.
          },
          "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
            "search_types": [ # The types of search grounding to enable.
              "A String",
            ],
          },
          "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
            "allowed_tools": [ # The allowed tools.
              { # The configuration for allowed tools.
                "mode": "A String", # The mode of the tool choice.
                "tools": [ # The names of the allowed tools.
                  "A String",
                ],
              },
            ],
            "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
              "a_key": "A String",
            },
            "name": "A String", # The name of the MCPServer.
            "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
          },
          "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
            "retrieval_types": [ # The types of file retrieval to enable.
              "A String",
            ],
            "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
              "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                "A String",
              ],
              "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
            },
          },
          "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
          },
        },
      ],
      "turnList": { # A list of Turns. # The turns for the interaction.
        "turns": [
          {
            "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
              "contents": [ # The contents of the list.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "contentString": "A String", # The content of the turn. A single string.
            "role": "A String", # The originator of this turn. Must be user for input or model for model output.
          },
        ],
      },
      "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
        "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "grounding_tool_count": [ # Grounding tool count.
          { # The number of grounding tool counts.
            "count": 42, # The number of grounding tool counts.
            "type": "A String", # The grounding tool type associated with the count.
          },
        ],
        "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "total_input_tokens": 42, # Number of tokens in the prompt (context).
        "total_output_tokens": 42, # Total number of tokens across all the generated responses.
        "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
        "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
      },
    }

`getStream(name, include_input=None, last_event_id=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)
      include_input: boolean, Optional. If true, includes the input in the response.
      last_event_id: 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",
            "mime_type": "A String",
            "rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String",
          },
          "document": {
            "data": "A String",
            "mime_type": "A String",
            "uri": "A String",
          },
          "image": {
            "data": "A String",
            "mime_type": "A String",
            "resolution": "A String", # The resolution of the media.
            "uri": "A String",
          },
          "text": {
            "text": "A String",
          },
          "textAnnotation": {
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
          },
          "thoughtSignature": {
            "signature": "A String", # Signature to match the backend source to be part of the generation.
          },
          "thoughtSummary": {
            "content": { # A new summary item to be added to the thought.
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          },
          "toolCall": {
            "codeExecutionCall": {
              "arguments": { # The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": {
            },
            "functionCall": {
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String",
            },
            "googleMapsCall": {
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": {
              "arguments": { # The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": {
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String",
              "server_name": "A String",
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": {
              "arguments": { # The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": {
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": {
              "is_error": True or False,
              "result": "A String",
            },
            "fileSearchResult": {
              "result": [
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": {
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False,
              "name": "A String",
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": {
              "result": [ # The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": {
              "is_error": True or False,
              "result": [
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": {
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String",
              "server_name": "A String",
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": {
              "is_error": True or False,
              "result": [
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": {
            "data": "A String",
            "mime_type": "A String",
            "resolution": "A String", # The resolution of the media.
            "uri": "A String",
          },
        },
        "index": 42,
      },
      "contentStart": { # The content block start data, used for content.start events.
        "content": { # The content of the response.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mime_type": "A String", # The mime type of the audio.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String", # The URI of the audio.
          },
          "document": { # A document content block.
            "data": "A String", # The document content.
            "mime_type": "A String", # The mime type of the document.
            "uri": "A String", # The URI of the document.
          },
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
          "thought": { # A thought content block.
            "signature": "A String", # Signature to match the backend source to be part of the generation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call content.
            "codeExecutionCall": { # Code execution content.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search content.
            },
            "functionCall": { # A function tool call content block.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps content.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search content.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call content.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context content.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result content.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result content.
              "result": [ # Optional. The results of the File Search.
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": { # A function tool result content block.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result content.
              "result": [ # Required. The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result content.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": { # A video content block.
            "data": "A String", # The video content.
            "mime_type": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
        "index": 42,
      },
      "contentStop": { # The content block stop data, used for content.stop events.
        "index": 42,
      },
      "errorEvent": { # The error event data, used for error events.
        "error": { # Error message from an interaction.
          "code": "A String", # A URI that identifies the error type.
          "message": "A String", # A human-readable error message.
        },
      },
      "event_id": "A String", # The event_id token to be used to resume the interaction stream, from this event.
      "interactionCompleteEvent": { # The interaction data, used for interaction.complete events.
        "interaction": { # Response for InteractionService.CreateInteraction. # Required. The completed interaction with empty outputs to reduce the payload size. Use the preceding ContentDelta events for the actual output.
          "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
            "agent": "A String", # The name of the `Agent` used for generating the completion.
            "deep_research_config": { # Configuration for the Deep Research agent.
              "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "visualization": "A String", # Whether to include visualizations in the response.
            },
            "dynamic_config": { # Configuration for dynamic agents.
              "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
          "content": { # The content of the response. # The content for the interaction.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
          "contentList": { # A list of Content. # The inputs for the interaction.
            "contents": [ # The contents of the list.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
          "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
            "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
              "image_config": { # The configuration for image interaction. # Configuration for image interaction.
                "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
                "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
              },
              "max_output_tokens": 42, # The maximum number of tokens to include in the response.
              "seed": 42, # Seed used in decoding for reproducibility.
              "speech_config": [ # Configuration for speech interaction.
                { # The configuration for speech interaction.
                  "language": "A String", # The language of the speech.
                  "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
                  "voice": "A String", # The voice of the speaker.
                },
              ],
              "stop_sequences": [ # A list of character sequences that will stop output interaction.
                "A String",
              ],
              "temperature": 3.14, # Controls the randomness of the output.
              "thinking_level": "A String", # The level of thought tokens that the model should generate.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
                "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
                  "mode": "A String", # The mode of the tool choice.
                  "tools": [ # The names of the allowed tools.
                    "A String",
                  ],
                },
              },
              "toolChoiceMode": "A String", # The mode of the tool choice.
              "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
            },
            "model": "A String", # The name of the `Model` used for generating the completion.
          },
          "outputs": [ # Output only. Responses from the model.
            { # The content of the response.
              "audio": { # An audio content block.
                "channels": 42, # The number of audio channels.
                "data": "A String", # The audio content.
                "mime_type": "A String", # The mime type of the audio.
                "sample_rate": 42, # The sample rate of the audio.
                "uri": "A String", # The URI of the audio.
              },
              "document": { # A document content block.
                "data": "A String", # The document content.
                "mime_type": "A String", # The mime type of the document.
                "uri": "A String", # The URI of the document.
              },
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
              "thought": { # A thought content block.
                "signature": "A String", # Signature to match the backend source to be part of the generation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call content.
                "codeExecutionCall": { # Code execution content.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search content.
                },
                "functionCall": { # A function tool call content block.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps content.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search content.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call content.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context content.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result content.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result content.
                  "result": [ # Optional. The results of the File Search.
                    { # The result of the File Search.
                    },
                  ],
                },
                "functionResult": { # A function tool result content block.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result content.
                  "result": [ # Required. The results of the Google Maps.
                    { # The result of the Google Maps.
                      "places": [ # The places that were found.
                        {
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result content.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "video": { # A video content block.
                "data": "A String", # The video content.
                "mime_type": "A String", # The mime type of the video.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the video.
              },
            },
          ],
          "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
          "responseFormatList": {
            "response_formats": [
              {
                "audio": { # Configuration for audio output format.
                  "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
                  "delivery": "A String", # The delivery mode for the audio output.
                  "mime_type": "A String", # The MIME type of the audio output.
                  "sample_rate": 42, # Sample rate in Hz.
                },
                "image": { # Configuration for image output format.
                  "aspect_ratio": "A String", # The aspect ratio for the image output.
                  "delivery": "A String", # The delivery mode for the image output.
                  "image_size": "A String", # The size of the image output.
                  "mime_type": "A String", # The MIME type of the image output.
                },
                "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "text": { # Configuration for text output format.
                  "mime_type": "A String", # The MIME type of the text output.
                  "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "video": { # Configuration for video output format.
                },
              },
            ],
          },
          "responseFormatSingleton": {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
          "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
            "boolValue": True or False, # Represents a boolean value.
            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
              "values": [ # Repeated field of dynamically typed values.
                # Object with schema name: GenaiValue
              ],
            },
            "nullValue": "A String", # Represents a null value.
            "numberValue": 3.14, # Represents a double value.
            "stringValue": "A String", # Represents a string value.
            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
          },
          "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
          "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
            "A String",
          ],
          "role": "A String", # Output only. The role of the interaction.
          "status": "A String", # Required. Output only. The status of the interaction.
          "stepList": { # A list of Steps. # Input only. The steps for the interaction.
            "steps": [ # The steps of the list.
              { # A step in the interaction.
                "modelOutput": { # Output generated by the model.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "thought": { # A thought step.
                  "signature": "A String", # A signature hash for backend validation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call step.
                  "codeExecutionCall": { # Code execution call step.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search call step.
                  },
                  "functionCall": { # A function tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps call step.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search call step.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context call step.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result step.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result step.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result step.
                  },
                  "functionResult": { # Result of a function tool call.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result step.
                    "result": [
                      { # The result of the Google Maps.
                        "places": [
                          {
                            "name": "A String",
                            "place_id": "A String",
                            "review_snippets": [
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String",
                          },
                        ],
                        "widget_context_token": "A String",
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result step.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result step.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result step.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "userInput": { # Input provided by the user.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
              },
            ],
          },
          "steps": [ # Output only. The steps that make up the interaction.
            { # A step in the interaction.
              "modelOutput": { # Output generated by the model.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "thought": { # A thought step.
                "signature": "A String", # A signature hash for backend validation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call step.
                "codeExecutionCall": { # Code execution call step.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search call step.
                },
                "functionCall": { # A function tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps call step.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search call step.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context call step.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result step.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result step.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result step.
                },
                "functionResult": { # Result of a function tool call.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result step.
                  "result": [
                    { # The result of the Google Maps.
                      "places": [
                        {
                          "name": "A String",
                          "place_id": "A String",
                          "review_snippets": [
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String",
                        },
                      ],
                      "widget_context_token": "A String",
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result step.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result step.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result step.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "userInput": { # Input provided by the user.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
            },
          ],
          "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
          "system_instruction": "A String", # System instruction for the interaction.
          "tools": [ # A list of tool declarations the model may call during interaction.
            { # A tool that can be used by the model.
              "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
              },
              "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
                "environment": "A String", # The environment being operated.
                "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
                  "A String",
                ],
              },
              "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
                "file_search_store_names": [ # The file search store names to search.
                  "A String",
                ],
                "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
                "top_k": 42, # The number of semantic retrieval chunks to retrieve.
              },
              "function": { # A tool that can be used by the model. # A function that can be used by the model.
                "description": "A String", # A description of the function.
                "name": "A String", # The name of the function.
                "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
              "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
                "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
                "latitude": 3.14, # The latitude of the user's location.
                "longitude": 3.14, # The longitude of the user's location.
              },
              "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
                "search_types": [ # The types of search grounding to enable.
                  "A String",
                ],
              },
              "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
                "allowed_tools": [ # The allowed tools.
                  { # The configuration for allowed tools.
                    "mode": "A String", # The mode of the tool choice.
                    "tools": [ # The names of the allowed tools.
                      "A String",
                    ],
                  },
                ],
                "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
                  "a_key": "A String",
                },
                "name": "A String", # The name of the MCPServer.
                "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
              },
              "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
                "retrieval_types": [ # The types of file retrieval to enable.
                  "A String",
                ],
                "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
                  "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                    "A String",
                  ],
                  "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
                },
              },
              "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
              },
            },
          ],
          "turnList": { # A list of Turns. # The turns for the interaction.
            "turns": [
              {
                "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
                  "contents": [ # The contents of the list.
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "contentString": "A String", # The content of the turn. A single string.
                "role": "A String", # The originator of this turn. Must be user for input or model for model output.
              },
            ],
          },
          "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
            "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "grounding_tool_count": [ # Grounding tool count.
              { # The number of grounding tool counts.
                "count": 42, # The number of grounding tool counts.
                "type": "A String", # The grounding tool type associated with the count.
              },
            ],
            "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
            "total_input_tokens": 42, # Number of tokens in the prompt (context).
            "total_output_tokens": 42, # Total number of tokens across all the generated responses.
            "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
            "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
            "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
          },
        },
      },
      "interactionCompletedEvent": { # The interaction data, used for interaction.completed events.
        "interaction": { # Response for InteractionService.CreateInteraction. # Required. The completed interaction with empty outputs to reduce the payload size. Use the preceding ContentDelta events for the actual output.
          "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
            "agent": "A String", # The name of the `Agent` used for generating the completion.
            "deep_research_config": { # Configuration for the Deep Research agent.
              "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "visualization": "A String", # Whether to include visualizations in the response.
            },
            "dynamic_config": { # Configuration for dynamic agents.
              "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
          "content": { # The content of the response. # The content for the interaction.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
          "contentList": { # A list of Content. # The inputs for the interaction.
            "contents": [ # The contents of the list.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
          "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
            "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
              "image_config": { # The configuration for image interaction. # Configuration for image interaction.
                "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
                "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
              },
              "max_output_tokens": 42, # The maximum number of tokens to include in the response.
              "seed": 42, # Seed used in decoding for reproducibility.
              "speech_config": [ # Configuration for speech interaction.
                { # The configuration for speech interaction.
                  "language": "A String", # The language of the speech.
                  "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
                  "voice": "A String", # The voice of the speaker.
                },
              ],
              "stop_sequences": [ # A list of character sequences that will stop output interaction.
                "A String",
              ],
              "temperature": 3.14, # Controls the randomness of the output.
              "thinking_level": "A String", # The level of thought tokens that the model should generate.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
                "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
                  "mode": "A String", # The mode of the tool choice.
                  "tools": [ # The names of the allowed tools.
                    "A String",
                  ],
                },
              },
              "toolChoiceMode": "A String", # The mode of the tool choice.
              "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
            },
            "model": "A String", # The name of the `Model` used for generating the completion.
          },
          "outputs": [ # Output only. Responses from the model.
            { # The content of the response.
              "audio": { # An audio content block.
                "channels": 42, # The number of audio channels.
                "data": "A String", # The audio content.
                "mime_type": "A String", # The mime type of the audio.
                "sample_rate": 42, # The sample rate of the audio.
                "uri": "A String", # The URI of the audio.
              },
              "document": { # A document content block.
                "data": "A String", # The document content.
                "mime_type": "A String", # The mime type of the document.
                "uri": "A String", # The URI of the document.
              },
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
              "thought": { # A thought content block.
                "signature": "A String", # Signature to match the backend source to be part of the generation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call content.
                "codeExecutionCall": { # Code execution content.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search content.
                },
                "functionCall": { # A function tool call content block.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps content.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search content.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call content.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context content.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result content.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result content.
                  "result": [ # Optional. The results of the File Search.
                    { # The result of the File Search.
                    },
                  ],
                },
                "functionResult": { # A function tool result content block.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result content.
                  "result": [ # Required. The results of the Google Maps.
                    { # The result of the Google Maps.
                      "places": [ # The places that were found.
                        {
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result content.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "video": { # A video content block.
                "data": "A String", # The video content.
                "mime_type": "A String", # The mime type of the video.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the video.
              },
            },
          ],
          "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
          "responseFormatList": {
            "response_formats": [
              {
                "audio": { # Configuration for audio output format.
                  "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
                  "delivery": "A String", # The delivery mode for the audio output.
                  "mime_type": "A String", # The MIME type of the audio output.
                  "sample_rate": 42, # Sample rate in Hz.
                },
                "image": { # Configuration for image output format.
                  "aspect_ratio": "A String", # The aspect ratio for the image output.
                  "delivery": "A String", # The delivery mode for the image output.
                  "image_size": "A String", # The size of the image output.
                  "mime_type": "A String", # The MIME type of the image output.
                },
                "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "text": { # Configuration for text output format.
                  "mime_type": "A String", # The MIME type of the text output.
                  "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "video": { # Configuration for video output format.
                },
              },
            ],
          },
          "responseFormatSingleton": {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
          "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
            "boolValue": True or False, # Represents a boolean value.
            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
              "values": [ # Repeated field of dynamically typed values.
                # Object with schema name: GenaiValue
              ],
            },
            "nullValue": "A String", # Represents a null value.
            "numberValue": 3.14, # Represents a double value.
            "stringValue": "A String", # Represents a string value.
            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
          },
          "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
          "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
            "A String",
          ],
          "role": "A String", # Output only. The role of the interaction.
          "status": "A String", # Required. Output only. The status of the interaction.
          "stepList": { # A list of Steps. # Input only. The steps for the interaction.
            "steps": [ # The steps of the list.
              { # A step in the interaction.
                "modelOutput": { # Output generated by the model.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "thought": { # A thought step.
                  "signature": "A String", # A signature hash for backend validation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call step.
                  "codeExecutionCall": { # Code execution call step.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search call step.
                  },
                  "functionCall": { # A function tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps call step.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search call step.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context call step.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result step.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result step.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result step.
                  },
                  "functionResult": { # Result of a function tool call.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result step.
                    "result": [
                      { # The result of the Google Maps.
                        "places": [
                          {
                            "name": "A String",
                            "place_id": "A String",
                            "review_snippets": [
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String",
                          },
                        ],
                        "widget_context_token": "A String",
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result step.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result step.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result step.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "userInput": { # Input provided by the user.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
              },
            ],
          },
          "steps": [ # Output only. The steps that make up the interaction.
            { # A step in the interaction.
              "modelOutput": { # Output generated by the model.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "thought": { # A thought step.
                "signature": "A String", # A signature hash for backend validation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call step.
                "codeExecutionCall": { # Code execution call step.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search call step.
                },
                "functionCall": { # A function tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps call step.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search call step.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context call step.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result step.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result step.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result step.
                },
                "functionResult": { # Result of a function tool call.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result step.
                  "result": [
                    { # The result of the Google Maps.
                      "places": [
                        {
                          "name": "A String",
                          "place_id": "A String",
                          "review_snippets": [
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String",
                        },
                      ],
                      "widget_context_token": "A String",
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result step.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result step.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result step.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "userInput": { # Input provided by the user.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
            },
          ],
          "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
          "system_instruction": "A String", # System instruction for the interaction.
          "tools": [ # A list of tool declarations the model may call during interaction.
            { # A tool that can be used by the model.
              "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
              },
              "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
                "environment": "A String", # The environment being operated.
                "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
                  "A String",
                ],
              },
              "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
                "file_search_store_names": [ # The file search store names to search.
                  "A String",
                ],
                "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
                "top_k": 42, # The number of semantic retrieval chunks to retrieve.
              },
              "function": { # A tool that can be used by the model. # A function that can be used by the model.
                "description": "A String", # A description of the function.
                "name": "A String", # The name of the function.
                "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
              "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
                "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
                "latitude": 3.14, # The latitude of the user's location.
                "longitude": 3.14, # The longitude of the user's location.
              },
              "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
                "search_types": [ # The types of search grounding to enable.
                  "A String",
                ],
              },
              "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
                "allowed_tools": [ # The allowed tools.
                  { # The configuration for allowed tools.
                    "mode": "A String", # The mode of the tool choice.
                    "tools": [ # The names of the allowed tools.
                      "A String",
                    ],
                  },
                ],
                "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
                  "a_key": "A String",
                },
                "name": "A String", # The name of the MCPServer.
                "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
              },
              "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
                "retrieval_types": [ # The types of file retrieval to enable.
                  "A String",
                ],
                "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
                  "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                    "A String",
                  ],
                  "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
                },
              },
              "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
              },
            },
          ],
          "turnList": { # A list of Turns. # The turns for the interaction.
            "turns": [
              {
                "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
                  "contents": [ # The contents of the list.
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "contentString": "A String", # The content of the turn. A single string.
                "role": "A String", # The originator of this turn. Must be user for input or model for model output.
              },
            ],
          },
          "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
            "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "grounding_tool_count": [ # Grounding tool count.
              { # The number of grounding tool counts.
                "count": 42, # The number of grounding tool counts.
                "type": "A String", # The grounding tool type associated with the count.
              },
            ],
            "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
            "total_input_tokens": 42, # Number of tokens in the prompt (context).
            "total_output_tokens": 42, # Total number of tokens across all the generated responses.
            "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
            "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
            "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
          },
        },
      },
      "interactionCreatedEvent": { # The interaction data, used for interaction.created events.
        "interaction": { # Response for InteractionService.CreateInteraction.
          "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
            "agent": "A String", # The name of the `Agent` used for generating the completion.
            "deep_research_config": { # Configuration for the Deep Research agent.
              "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "visualization": "A String", # Whether to include visualizations in the response.
            },
            "dynamic_config": { # Configuration for dynamic agents.
              "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
          "content": { # The content of the response. # The content for the interaction.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
          "contentList": { # A list of Content. # The inputs for the interaction.
            "contents": [ # The contents of the list.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
          "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
            "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
              "image_config": { # The configuration for image interaction. # Configuration for image interaction.
                "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
                "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
              },
              "max_output_tokens": 42, # The maximum number of tokens to include in the response.
              "seed": 42, # Seed used in decoding for reproducibility.
              "speech_config": [ # Configuration for speech interaction.
                { # The configuration for speech interaction.
                  "language": "A String", # The language of the speech.
                  "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
                  "voice": "A String", # The voice of the speaker.
                },
              ],
              "stop_sequences": [ # A list of character sequences that will stop output interaction.
                "A String",
              ],
              "temperature": 3.14, # Controls the randomness of the output.
              "thinking_level": "A String", # The level of thought tokens that the model should generate.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
                "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
                  "mode": "A String", # The mode of the tool choice.
                  "tools": [ # The names of the allowed tools.
                    "A String",
                  ],
                },
              },
              "toolChoiceMode": "A String", # The mode of the tool choice.
              "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
            },
            "model": "A String", # The name of the `Model` used for generating the completion.
          },
          "outputs": [ # Output only. Responses from the model.
            { # The content of the response.
              "audio": { # An audio content block.
                "channels": 42, # The number of audio channels.
                "data": "A String", # The audio content.
                "mime_type": "A String", # The mime type of the audio.
                "sample_rate": 42, # The sample rate of the audio.
                "uri": "A String", # The URI of the audio.
              },
              "document": { # A document content block.
                "data": "A String", # The document content.
                "mime_type": "A String", # The mime type of the document.
                "uri": "A String", # The URI of the document.
              },
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
              "thought": { # A thought content block.
                "signature": "A String", # Signature to match the backend source to be part of the generation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call content.
                "codeExecutionCall": { # Code execution content.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search content.
                },
                "functionCall": { # A function tool call content block.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps content.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search content.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call content.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context content.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result content.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result content.
                  "result": [ # Optional. The results of the File Search.
                    { # The result of the File Search.
                    },
                  ],
                },
                "functionResult": { # A function tool result content block.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result content.
                  "result": [ # Required. The results of the Google Maps.
                    { # The result of the Google Maps.
                      "places": [ # The places that were found.
                        {
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result content.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "video": { # A video content block.
                "data": "A String", # The video content.
                "mime_type": "A String", # The mime type of the video.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the video.
              },
            },
          ],
          "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
          "responseFormatList": {
            "response_formats": [
              {
                "audio": { # Configuration for audio output format.
                  "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
                  "delivery": "A String", # The delivery mode for the audio output.
                  "mime_type": "A String", # The MIME type of the audio output.
                  "sample_rate": 42, # Sample rate in Hz.
                },
                "image": { # Configuration for image output format.
                  "aspect_ratio": "A String", # The aspect ratio for the image output.
                  "delivery": "A String", # The delivery mode for the image output.
                  "image_size": "A String", # The size of the image output.
                  "mime_type": "A String", # The MIME type of the image output.
                },
                "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "text": { # Configuration for text output format.
                  "mime_type": "A String", # The MIME type of the text output.
                  "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "video": { # Configuration for video output format.
                },
              },
            ],
          },
          "responseFormatSingleton": {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
          "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
            "boolValue": True or False, # Represents a boolean value.
            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
              "values": [ # Repeated field of dynamically typed values.
                # Object with schema name: GenaiValue
              ],
            },
            "nullValue": "A String", # Represents a null value.
            "numberValue": 3.14, # Represents a double value.
            "stringValue": "A String", # Represents a string value.
            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
          },
          "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
          "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
            "A String",
          ],
          "role": "A String", # Output only. The role of the interaction.
          "status": "A String", # Required. Output only. The status of the interaction.
          "stepList": { # A list of Steps. # Input only. The steps for the interaction.
            "steps": [ # The steps of the list.
              { # A step in the interaction.
                "modelOutput": { # Output generated by the model.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "thought": { # A thought step.
                  "signature": "A String", # A signature hash for backend validation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call step.
                  "codeExecutionCall": { # Code execution call step.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search call step.
                  },
                  "functionCall": { # A function tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps call step.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search call step.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context call step.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result step.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result step.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result step.
                  },
                  "functionResult": { # Result of a function tool call.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result step.
                    "result": [
                      { # The result of the Google Maps.
                        "places": [
                          {
                            "name": "A String",
                            "place_id": "A String",
                            "review_snippets": [
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String",
                          },
                        ],
                        "widget_context_token": "A String",
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result step.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result step.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result step.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "userInput": { # Input provided by the user.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
              },
            ],
          },
          "steps": [ # Output only. The steps that make up the interaction.
            { # A step in the interaction.
              "modelOutput": { # Output generated by the model.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "thought": { # A thought step.
                "signature": "A String", # A signature hash for backend validation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call step.
                "codeExecutionCall": { # Code execution call step.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search call step.
                },
                "functionCall": { # A function tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps call step.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search call step.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context call step.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result step.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result step.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result step.
                },
                "functionResult": { # Result of a function tool call.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result step.
                  "result": [
                    { # The result of the Google Maps.
                      "places": [
                        {
                          "name": "A String",
                          "place_id": "A String",
                          "review_snippets": [
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String",
                        },
                      ],
                      "widget_context_token": "A String",
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result step.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result step.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result step.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "userInput": { # Input provided by the user.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
            },
          ],
          "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
          "system_instruction": "A String", # System instruction for the interaction.
          "tools": [ # A list of tool declarations the model may call during interaction.
            { # A tool that can be used by the model.
              "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
              },
              "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
                "environment": "A String", # The environment being operated.
                "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
                  "A String",
                ],
              },
              "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
                "file_search_store_names": [ # The file search store names to search.
                  "A String",
                ],
                "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
                "top_k": 42, # The number of semantic retrieval chunks to retrieve.
              },
              "function": { # A tool that can be used by the model. # A function that can be used by the model.
                "description": "A String", # A description of the function.
                "name": "A String", # The name of the function.
                "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
              "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
                "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
                "latitude": 3.14, # The latitude of the user's location.
                "longitude": 3.14, # The longitude of the user's location.
              },
              "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
                "search_types": [ # The types of search grounding to enable.
                  "A String",
                ],
              },
              "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
                "allowed_tools": [ # The allowed tools.
                  { # The configuration for allowed tools.
                    "mode": "A String", # The mode of the tool choice.
                    "tools": [ # The names of the allowed tools.
                      "A String",
                    ],
                  },
                ],
                "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
                  "a_key": "A String",
                },
                "name": "A String", # The name of the MCPServer.
                "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
              },
              "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
                "retrieval_types": [ # The types of file retrieval to enable.
                  "A String",
                ],
                "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
                  "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                    "A String",
                  ],
                  "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
                },
              },
              "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
              },
            },
          ],
          "turnList": { # A list of Turns. # The turns for the interaction.
            "turns": [
              {
                "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
                  "contents": [ # The contents of the list.
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "contentString": "A String", # The content of the turn. A single string.
                "role": "A String", # The originator of this turn. Must be user for input or model for model output.
              },
            ],
          },
          "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
            "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "grounding_tool_count": [ # Grounding tool count.
              { # The number of grounding tool counts.
                "count": 42, # The number of grounding tool counts.
                "type": "A String", # The grounding tool type associated with the count.
              },
            ],
            "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
            "total_input_tokens": 42, # Number of tokens in the prompt (context).
            "total_output_tokens": 42, # Total number of tokens across all the generated responses.
            "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
            "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
            "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
          },
        },
      },
      "interactionStartEvent": { # The interaction data, used for interaction.start events.
        "interaction": { # Response for InteractionService.CreateInteraction.
          "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
            "agent": "A String", # The name of the `Agent` used for generating the completion.
            "deep_research_config": { # Configuration for the Deep Research agent.
              "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "visualization": "A String", # Whether to include visualizations in the response.
            },
            "dynamic_config": { # Configuration for dynamic agents.
              "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
          "content": { # The content of the response. # The content for the interaction.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
          "contentList": { # A list of Content. # The inputs for the interaction.
            "contents": [ # The contents of the list.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
          "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
            "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
              "image_config": { # The configuration for image interaction. # Configuration for image interaction.
                "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
                "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
              },
              "max_output_tokens": 42, # The maximum number of tokens to include in the response.
              "seed": 42, # Seed used in decoding for reproducibility.
              "speech_config": [ # Configuration for speech interaction.
                { # The configuration for speech interaction.
                  "language": "A String", # The language of the speech.
                  "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
                  "voice": "A String", # The voice of the speaker.
                },
              ],
              "stop_sequences": [ # A list of character sequences that will stop output interaction.
                "A String",
              ],
              "temperature": 3.14, # Controls the randomness of the output.
              "thinking_level": "A String", # The level of thought tokens that the model should generate.
              "thinking_summaries": "A String", # Whether to include thought summaries in the response.
              "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
                "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
                  "mode": "A String", # The mode of the tool choice.
                  "tools": [ # The names of the allowed tools.
                    "A String",
                  ],
                },
              },
              "toolChoiceMode": "A String", # The mode of the tool choice.
              "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
            },
            "model": "A String", # The name of the `Model` used for generating the completion.
          },
          "outputs": [ # Output only. Responses from the model.
            { # The content of the response.
              "audio": { # An audio content block.
                "channels": 42, # The number of audio channels.
                "data": "A String", # The audio content.
                "mime_type": "A String", # The mime type of the audio.
                "sample_rate": 42, # The sample rate of the audio.
                "uri": "A String", # The URI of the audio.
              },
              "document": { # A document content block.
                "data": "A String", # The document content.
                "mime_type": "A String", # The mime type of the document.
                "uri": "A String", # The URI of the document.
              },
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
              "thought": { # A thought content block.
                "signature": "A String", # Signature to match the backend source to be part of the generation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call content.
                "codeExecutionCall": { # Code execution content.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search content.
                },
                "functionCall": { # A function tool call content block.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps content.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search content.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call content.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context content.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result content.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result content.
                  "result": [ # Optional. The results of the File Search.
                    { # The result of the File Search.
                    },
                  ],
                },
                "functionResult": { # A function tool result content block.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result content.
                  "result": [ # Required. The results of the Google Maps.
                    { # The result of the Google Maps.
                      "places": [ # The places that were found.
                        {
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result content.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "video": { # A video content block.
                "data": "A String", # The video content.
                "mime_type": "A String", # The mime type of the video.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the video.
              },
            },
          ],
          "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
          "responseFormatList": {
            "response_formats": [
              {
                "audio": { # Configuration for audio output format.
                  "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
                  "delivery": "A String", # The delivery mode for the audio output.
                  "mime_type": "A String", # The MIME type of the audio output.
                  "sample_rate": 42, # Sample rate in Hz.
                },
                "image": { # Configuration for image output format.
                  "aspect_ratio": "A String", # The aspect ratio for the image output.
                  "delivery": "A String", # The delivery mode for the image output.
                  "image_size": "A String", # The size of the image output.
                  "mime_type": "A String", # The MIME type of the image output.
                },
                "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "text": { # Configuration for text output format.
                  "mime_type": "A String", # The MIME type of the text output.
                  "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "video": { # Configuration for video output format.
                },
              },
            ],
          },
          "responseFormatSingleton": {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
          "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
            "boolValue": True or False, # Represents a boolean value.
            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
              "values": [ # Repeated field of dynamically typed values.
                # Object with schema name: GenaiValue
              ],
            },
            "nullValue": "A String", # Represents a null value.
            "numberValue": 3.14, # Represents a double value.
            "stringValue": "A String", # Represents a string value.
            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
          },
          "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
          "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
            "A String",
          ],
          "role": "A String", # Output only. The role of the interaction.
          "status": "A String", # Required. Output only. The status of the interaction.
          "stepList": { # A list of Steps. # Input only. The steps for the interaction.
            "steps": [ # The steps of the list.
              { # A step in the interaction.
                "modelOutput": { # Output generated by the model.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "thought": { # A thought step.
                  "signature": "A String", # A signature hash for backend validation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call step.
                  "codeExecutionCall": { # Code execution call step.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search call step.
                  },
                  "functionCall": { # A function tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps call step.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search call step.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call step.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context call step.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result step.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result step.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result step.
                  },
                  "functionResult": { # Result of a function tool call.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result step.
                    "result": [
                      { # The result of the Google Maps.
                        "places": [
                          {
                            "name": "A String",
                            "place_id": "A String",
                            "review_snippets": [
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String",
                          },
                        ],
                        "widget_context_token": "A String",
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result step.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result step.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result step.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "userInput": { # Input provided by the user.
                  "content": [
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
              },
            ],
          },
          "steps": [ # Output only. The steps that make up the interaction.
            { # A step in the interaction.
              "modelOutput": { # Output generated by the model.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "thought": { # A thought step.
                "signature": "A String", # A signature hash for backend validation.
                "summary": [ # A summary of the thought.
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "toolCall": { # Tool call step.
                "codeExecutionCall": { # Code execution call step.
                  "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                    "code": "A String", # The code to be executed.
                    "language": "A String", # Programming language of the `code`.
                  },
                },
                "fileSearchCall": { # File Search call step.
                },
                "functionCall": { # A function tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool to call.
                },
                "googleMapsCall": { # Google Maps call step.
                  "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                    "queries": [ # The queries to be executed.
                      "A String",
                    ],
                  },
                },
                "googleSearchCall": { # Google Search call step.
                  "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                    "queries": [ # Web search queries for the following-up web search.
                      "A String",
                    ],
                  },
                  "search_type": "A String", # The type of search grounding enabled.
                },
                "id": "A String", # Required. A unique ID for this specific tool call.
                "mcpServerToolCall": { # MCPServer tool call step.
                  "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "server_name": "A String", # Required. The name of the used MCP server.
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextCall": { # URL context call step.
                  "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                    "urls": [ # The URLs to fetch.
                      "A String",
                    ],
                  },
                },
              },
              "toolResult": { # Tool result step.
                "call_id": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result step.
                  "is_error": True or False, # Whether the code execution resulted in an error.
                  "result": "A String", # Required. The output of the code execution.
                },
                "fileSearchResult": { # File Search result step.
                },
                "functionResult": { # Result of a function tool call.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "is_error": True or False, # Whether the tool call resulted in an error.
                  "name": "A String", # The name of the tool that was called.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "googleMapsResult": { # Google Maps result step.
                  "result": [
                    { # The result of the Google Maps.
                      "places": [
                        {
                          "name": "A String",
                          "place_id": "A String",
                          "review_snippets": [
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String",
                        },
                      ],
                      "widget_context_token": "A String",
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result step.
                  "is_error": True or False, # Whether the Google Search resulted in an error.
                  "result": [ # Required. The results of the Google Search.
                    { # The result of the Google Search.
                      "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                    },
                  ],
                },
                "mcpServerToolResult": { # MCPServer tool result step.
                  "contentList": {
                    "contents": [
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Name of the tool which is called for this specific tool call.
                  "server_name": "A String", # The name of the used MCP server.
                  "stringResult": "A String",
                  "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result step.
                  "is_error": True or False, # Whether the URL context resulted in an error.
                  "result": [ # Required. The results of the URL context.
                    { # The result of the URL context.
                      "status": "A String", # The status of the URL retrieval.
                      "url": "A String", # The URL that was fetched.
                    },
                  ],
                },
              },
              "userInput": { # Input provided by the user.
                "content": [
                  { # The content of the response.
                    "audio": { # An audio content block.
                      "channels": 42, # The number of audio channels.
                      "data": "A String", # The audio content.
                      "mime_type": "A String", # The mime type of the audio.
                      "sample_rate": 42, # The sample rate of the audio.
                      "uri": "A String", # The URI of the audio.
                    },
                    "document": { # A document content block.
                      "data": "A String", # The document content.
                      "mime_type": "A String", # The mime type of the document.
                      "uri": "A String", # The URI of the document.
                    },
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                    "thought": { # A thought content block.
                      "signature": "A String", # Signature to match the backend source to be part of the generation.
                      "summary": [ # A summary of the thought.
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "toolCall": { # Tool call content.
                      "codeExecutionCall": { # Code execution content.
                        "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                          "code": "A String", # The code to be executed.
                          "language": "A String", # Programming language of the `code`.
                        },
                      },
                      "fileSearchCall": { # File Search content.
                      },
                      "functionCall": { # A function tool call content block.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool to call.
                      },
                      "googleMapsCall": { # Google Maps content.
                        "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                          "queries": [ # The queries to be executed.
                            "A String",
                          ],
                        },
                      },
                      "googleSearchCall": { # Google Search content.
                        "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                          "queries": [ # Web search queries for the following-up web search.
                            "A String",
                          ],
                        },
                        "search_type": "A String", # The type of search grounding enabled.
                      },
                      "id": "A String", # Required. A unique ID for this specific tool call.
                      "mcpServerToolCall": { # MCPServer tool call content.
                        "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "server_name": "A String", # Required. The name of the used MCP server.
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextCall": { # URL context content.
                        "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                          "urls": [ # The URLs to fetch.
                            "A String",
                          ],
                        },
                      },
                    },
                    "toolResult": { # Tool result content.
                      "call_id": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "is_error": True or False, # Whether the code execution resulted in an error.
                        "result": "A String", # Required. The output of the code execution.
                      },
                      "fileSearchResult": { # File Search result content.
                        "result": [ # Optional. The results of the File Search.
                          { # The result of the File Search.
                          },
                        ],
                      },
                      "functionResult": { # A function tool result content block.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "is_error": True or False, # Whether the tool call resulted in an error.
                        "name": "A String", # The name of the tool that was called.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "googleMapsResult": { # Google Maps result content.
                        "result": [ # Required. The results of the Google Maps.
                          { # The result of the Google Maps.
                            "places": [ # The places that were found.
                              {
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "is_error": True or False, # Whether the Google Search resulted in an error.
                        "result": [ # Required. The results of the Google Search.
                          { # The result of the Google Search.
                            "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                          },
                        ],
                      },
                      "mcpServerToolResult": { # MCPServer tool result content.
                        "contentList": {
                          "contents": [
                            {
                              "image": { # An image content block.
                                "data": "A String", # The image content.
                                "mime_type": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "end_index": 42, # End of the attributed segment, exclusive.
                                    "file_citation": { # A file citation annotation. # A file citation annotation.
                                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiValue
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "document_uri": "A String", # The URI of the file.
                                      "file_name": "A String", # The name of the file.
                                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                      "page_number": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "place_citation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "review_id": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Name of the tool which is called for this specific tool call.
                        "server_name": "A String", # The name of the used MCP server.
                        "stringResult": "A String",
                        "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "is_error": True or False, # Whether the URL context resulted in an error.
                        "result": [ # Required. The results of the URL context.
                          { # The result of the URL context.
                            "status": "A String", # The status of the URL retrieval.
                            "url": "A String", # The URL that was fetched.
                          },
                        ],
                      },
                    },
                    "video": { # A video content block.
                      "data": "A String", # The video content.
                      "mime_type": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
            },
          ],
          "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
          "system_instruction": "A String", # System instruction for the interaction.
          "tools": [ # A list of tool declarations the model may call during interaction.
            { # A tool that can be used by the model.
              "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
              },
              "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
                "environment": "A String", # The environment being operated.
                "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
                  "A String",
                ],
              },
              "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
                "file_search_store_names": [ # The file search store names to search.
                  "A String",
                ],
                "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
                "top_k": 42, # The number of semantic retrieval chunks to retrieve.
              },
              "function": { # A tool that can be used by the model. # A function that can be used by the model.
                "description": "A String", # A description of the function.
                "name": "A String", # The name of the function.
                "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
              "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
                "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
                "latitude": 3.14, # The latitude of the user's location.
                "longitude": 3.14, # The longitude of the user's location.
              },
              "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
                "search_types": [ # The types of search grounding to enable.
                  "A String",
                ],
              },
              "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
                "allowed_tools": [ # The allowed tools.
                  { # The configuration for allowed tools.
                    "mode": "A String", # The mode of the tool choice.
                    "tools": [ # The names of the allowed tools.
                      "A String",
                    ],
                  },
                ],
                "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
                  "a_key": "A String",
                },
                "name": "A String", # The name of the MCPServer.
                "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
              },
              "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
                "retrieval_types": [ # The types of file retrieval to enable.
                  "A String",
                ],
                "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
                  "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                    "A String",
                  ],
                  "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
                },
              },
              "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
              },
            },
          ],
          "turnList": { # A list of Turns. # The turns for the interaction.
            "turns": [
              {
                "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
                  "contents": [ # The contents of the list.
                    { # The content of the response.
                      "audio": { # An audio content block.
                        "channels": 42, # The number of audio channels.
                        "data": "A String", # The audio content.
                        "mime_type": "A String", # The mime type of the audio.
                        "sample_rate": 42, # The sample rate of the audio.
                        "uri": "A String", # The URI of the audio.
                      },
                      "document": { # A document content block.
                        "data": "A String", # The document content.
                        "mime_type": "A String", # The mime type of the document.
                        "uri": "A String", # The URI of the document.
                      },
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                      "thought": { # A thought content block.
                        "signature": "A String", # Signature to match the backend source to be part of the generation.
                        "summary": [ # A summary of the thought.
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "toolCall": { # Tool call content.
                        "codeExecutionCall": { # Code execution content.
                          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                            "code": "A String", # The code to be executed.
                            "language": "A String", # Programming language of the `code`.
                          },
                        },
                        "fileSearchCall": { # File Search content.
                        },
                        "functionCall": { # A function tool call content block.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool to call.
                        },
                        "googleMapsCall": { # Google Maps content.
                          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                            "queries": [ # The queries to be executed.
                              "A String",
                            ],
                          },
                        },
                        "googleSearchCall": { # Google Search content.
                          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                            "queries": [ # Web search queries for the following-up web search.
                              "A String",
                            ],
                          },
                          "search_type": "A String", # The type of search grounding enabled.
                        },
                        "id": "A String", # Required. A unique ID for this specific tool call.
                        "mcpServerToolCall": { # MCPServer tool call content.
                          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "server_name": "A String", # Required. The name of the used MCP server.
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextCall": { # URL context content.
                          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                            "urls": [ # The URLs to fetch.
                              "A String",
                            ],
                          },
                        },
                      },
                      "toolResult": { # Tool result content.
                        "call_id": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "is_error": True or False, # Whether the code execution resulted in an error.
                          "result": "A String", # Required. The output of the code execution.
                        },
                        "fileSearchResult": { # File Search result content.
                          "result": [ # Optional. The results of the File Search.
                            { # The result of the File Search.
                            },
                          ],
                        },
                        "functionResult": { # A function tool result content block.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "is_error": True or False, # Whether the tool call resulted in an error.
                          "name": "A String", # The name of the tool that was called.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "googleMapsResult": { # Google Maps result content.
                          "result": [ # Required. The results of the Google Maps.
                            { # The result of the Google Maps.
                              "places": [ # The places that were found.
                                {
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "is_error": True or False, # Whether the Google Search resulted in an error.
                          "result": [ # Required. The results of the Google Search.
                            { # The result of the Google Search.
                              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                            },
                          ],
                        },
                        "mcpServerToolResult": { # MCPServer tool result content.
                          "contentList": {
                            "contents": [
                              {
                                "image": { # An image content block.
                                  "data": "A String", # The image content.
                                  "mime_type": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "end_index": 42, # End of the attributed segment, exclusive.
                                      "file_citation": { # A file citation annotation. # A file citation annotation.
                                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiValue
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "document_uri": "A String", # The URI of the file.
                                        "file_name": "A String", # The name of the file.
                                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                        "page_number": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "place_citation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "review_id": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Name of the tool which is called for this specific tool call.
                          "server_name": "A String", # The name of the used MCP server.
                          "stringResult": "A String",
                          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "is_error": True or False, # Whether the URL context resulted in an error.
                          "result": [ # Required. The results of the URL context.
                            { # The result of the URL context.
                              "status": "A String", # The status of the URL retrieval.
                              "url": "A String", # The URL that was fetched.
                            },
                          ],
                        },
                      },
                      "video": { # A video content block.
                        "data": "A String", # The video content.
                        "mime_type": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "contentString": "A String", # The content of the turn. A single string.
                "role": "A String", # The originator of this turn. Must be user for input or model for model output.
              },
            ],
          },
          "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
          "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
            "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "grounding_tool_count": [ # Grounding tool count.
              { # The number of grounding tool counts.
                "count": 42, # The number of grounding tool counts.
                "type": "A String", # The grounding tool type associated with the count.
              },
            ],
            "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
              { # The token count for a single response modality.
                "modality": "A String", # The modality associated with the token count.
                "tokens": 42, # Number of tokens for the modality.
              },
            ],
            "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
            "total_input_tokens": 42, # Number of tokens in the prompt (context).
            "total_output_tokens": 42, # Total number of tokens across all the generated responses.
            "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
            "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
            "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
          },
        },
      },
      "interactionStatusUpdate": { # The interaction status data, used for interaction.status_update events.
        "interaction_id": "A String",
        "status": "A String",
      },
      "stepDelta": { # The step delta data, used for step.delta events.
        "delta": {
          "argumentsDelta": {
            "partial_arguments": "A String",
          },
          "audio": {
            "channels": 42, # The number of audio channels.
            "data": "A String",
            "mime_type": "A String",
            "rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String",
          },
          "document": {
            "data": "A String",
            "mime_type": "A String",
            "uri": "A String",
          },
          "image": {
            "data": "A String",
            "mime_type": "A String",
            "resolution": "A String", # The resolution of the media.
            "uri": "A String",
          },
          "text": {
            "text": "A String",
          },
          "textAnnotationDelta": {
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
          },
          "thoughtSignature": {
            "signature": "A String", # Signature to match the backend source to be part of the generation.
          },
          "thoughtSummary": {
            "content": { # A new summary item to be added to the thought.
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          },
          "video": {
            "data": "A String",
            "mime_type": "A String",
            "resolution": "A String", # The resolution of the media.
            "uri": "A String",
          },
        },
        "index": 42,
      },
      "stepStart": { # The step start data, used for step.start events.
        "index": 42,
        "step": { # A step in the interaction.
          "modelOutput": { # Output generated by the model.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "thought": { # A thought step.
            "signature": "A String", # A signature hash for backend validation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call step.
            "codeExecutionCall": { # Code execution call step.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search call step.
            },
            "functionCall": { # A function tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps call step.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search call step.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context call step.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result step.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result step.
            },
            "functionResult": { # Result of a function tool call.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "place_id": "A String",
                      "review_snippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widget_context_token": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "userInput": { # Input provided by the user.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
        },
      },
      "stepStop": { # The step stop data, used for step.stop events.
        "index": 42,
      },
    }