Agent Platform API . projects . locations . interactions

Instance Methods

close()

Close httplib2 connections.

create(projectsId, locationsId, body=None, x__xgafv=None)

Creates an interaction.

createStream(projectsId, locationsId, body=None, x__xgafv=None)

Creates an interaction and streams the response.

Method Details

close()
Close httplib2 connections.
create(projectsId, locationsId, body=None, x__xgafv=None)
Creates an interaction.

Args:
  projectsId: string, A parameter (required)
  locationsId: string, A parameter (required)
  body: object, The request body.
    The object takes the form of:

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

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

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

Args:
  projectsId: string, A parameter (required)
  locationsId: string, A parameter (required)
  body: object, The request body.
    The object takes the form of:

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

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  "contentDelta": { # The content block delta data, used for content.delta events.
    "delta": { # The delta content data for a content block.
      "audio": {
        "channels": 42, # The number of audio channels.
        "data": "A String",
        "mime_type": "A String",
        "rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
        "sample_rate": 42, # The sample rate of the audio.
        "uri": "A String",
      },
      "document": {
        "data": "A String",
        "mime_type": "A String",
        "uri": "A String",
      },
      "image": {
        "data": "A String",
        "mime_type": "A String",
        "resolution": "A String", # The resolution of the media.
        "uri": "A String",
      },
      "text": {
        "text": "A String",
      },
      "textAnnotation": {
        "annotations": [ # Citation information for model-generated content.
          { # Citation information for model-generated content.
            "end_index": 42, # End of the attributed segment, exclusive.
            "file_citation": { # A file citation annotation. # A file citation annotation.
              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "document_uri": "A String", # The URI of the file.
              "file_name": "A String", # The name of the file.
              "media_id": "A String", # Media ID in-case of image citations, if applicable.
              "page_number": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "place_citation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "review_id": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "url_citation": { # A URL citation annotation. # A URL citation annotation.
              "title": "A String", # The title of the URL.
              "url": "A String", # The URL.
            },
          },
        ],
      },
      "thoughtSignature": {
        "signature": "A String", # Signature to match the backend source to be part of the generation.
      },
      "thoughtSummary": {
        "content": { # A new summary item to be added to the thought.
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
        },
      },
      "toolCall": {
        "codeExecutionCall": {
          "arguments": { # The arguments to pass to the code execution.
            "code": "A String", # The code to be executed.
            "language": "A String", # Programming language of the `code`.
          },
        },
        "fileSearchCall": {
        },
        "functionCall": {
          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String",
        },
        "googleMapsCall": {
          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
            "queries": [ # The queries to be executed.
              "A String",
            ],
          },
        },
        "googleSearchCall": {
          "arguments": { # The arguments to pass to Google Search.
            "queries": [ # Web search queries for the following-up web search.
              "A String",
            ],
          },
        },
        "id": "A String", # Required. A unique ID for this specific tool call.
        "mcpServerToolCall": {
          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String",
          "server_name": "A String",
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextCall": {
          "arguments": { # The arguments to pass to the URL context.
            "urls": [ # The URLs to fetch.
              "A String",
            ],
          },
        },
      },
      "toolResult": {
        "call_id": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": {
          "is_error": True or False,
          "result": "A String",
        },
        "fileSearchResult": {
          "result": [
            { # The result of the File Search.
            },
          ],
        },
        "functionResult": {
          "contentList": {
            "contents": [
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "is_error": True or False,
          "name": "A String",
          "stringResult": "A String",
          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "googleMapsResult": {
          "result": [ # The results of the Google Maps.
            { # The result of the Google Maps.
              "places": [ # The places that were found.
                {
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
              ],
              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
            },
          ],
        },
        "googleSearchResult": {
          "is_error": True or False,
          "result": [
            { # The result of the Google Search.
              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": {
          "contentList": {
            "contents": [
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "name": "A String",
          "server_name": "A String",
          "stringResult": "A String",
          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": {
          "is_error": True or False,
          "result": [
            { # The result of the URL context.
              "status": "A String", # The status of the URL retrieval.
              "url": "A String", # The URL that was fetched.
            },
          ],
        },
      },
      "video": {
        "data": "A String",
        "mime_type": "A String",
        "resolution": "A String", # The resolution of the media.
        "uri": "A String",
      },
    },
    "index": 42,
  },
  "contentStart": { # The content block start data, used for content.start events.
    "content": { # The content of the response.
      "audio": { # An audio content block.
        "channels": 42, # The number of audio channels.
        "data": "A String", # The audio content.
        "mime_type": "A String", # The mime type of the audio.
        "sample_rate": 42, # The sample rate of the audio.
        "uri": "A String", # The URI of the audio.
      },
      "document": { # A document content block.
        "data": "A String", # The document content.
        "mime_type": "A String", # The mime type of the document.
        "uri": "A String", # The URI of the document.
      },
      "image": { # An image content block.
        "data": "A String", # The image content.
        "mime_type": "A String", # The mime type of the image.
        "resolution": "A String", # The resolution of the media.
        "uri": "A String", # The URI of the image.
      },
      "text": { # A text content block.
        "annotations": [ # Citation information for model-generated content.
          { # Citation information for model-generated content.
            "end_index": 42, # End of the attributed segment, exclusive.
            "file_citation": { # A file citation annotation. # A file citation annotation.
              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "document_uri": "A String", # The URI of the file.
              "file_name": "A String", # The name of the file.
              "media_id": "A String", # Media ID in-case of image citations, if applicable.
              "page_number": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "place_citation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "review_id": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "url_citation": { # A URL citation annotation. # A URL citation annotation.
              "title": "A String", # The title of the URL.
              "url": "A String", # The URL.
            },
          },
        ],
        "text": "A String", # Required. The text content.
      },
      "thought": { # A thought content block.
        "signature": "A String", # Signature to match the backend source to be part of the generation.
        "summary": [ # A summary of the thought.
          {
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
          },
        ],
      },
      "toolCall": { # Tool call content.
        "codeExecutionCall": { # Code execution content.
          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
            "code": "A String", # The code to be executed.
            "language": "A String", # Programming language of the `code`.
          },
        },
        "fileSearchCall": { # File Search content.
        },
        "functionCall": { # A function tool call content block.
          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool to call.
        },
        "googleMapsCall": { # Google Maps content.
          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
            "queries": [ # The queries to be executed.
              "A String",
            ],
          },
        },
        "googleSearchCall": { # Google Search content.
          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
            "queries": [ # Web search queries for the following-up web search.
              "A String",
            ],
          },
          "search_type": "A String", # The type of search grounding enabled.
        },
        "id": "A String", # Required. A unique ID for this specific tool call.
        "mcpServerToolCall": { # MCPServer tool call content.
          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "server_name": "A String", # Required. The name of the used MCP server.
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextCall": { # URL context content.
          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
            "urls": [ # The URLs to fetch.
              "A String",
            ],
          },
        },
      },
      "toolResult": { # Tool result content.
        "call_id": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result content.
          "is_error": True or False, # Whether the code execution resulted in an error.
          "result": "A String", # Required. The output of the code execution.
        },
        "fileSearchResult": { # File Search result content.
          "result": [ # Optional. The results of the File Search.
            { # The result of the File Search.
            },
          ],
        },
        "functionResult": { # A function tool result content block.
          "contentList": {
            "contents": [
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "is_error": True or False, # Whether the tool call resulted in an error.
          "name": "A String", # The name of the tool that was called.
          "stringResult": "A String",
          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "googleMapsResult": { # Google Maps result content.
          "result": [ # Required. The results of the Google Maps.
            { # The result of the Google Maps.
              "places": [ # The places that were found.
                {
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
              ],
              "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
            },
          ],
        },
        "googleSearchResult": { # Google Search result content.
          "is_error": True or False, # Whether the Google Search resulted in an error.
          "result": [ # Required. The results of the Google Search.
            { # The result of the Google Search.
              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": { # MCPServer tool result content.
          "contentList": {
            "contents": [
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "name": "A String", # Name of the tool which is called for this specific tool call.
          "server_name": "A String", # The name of the used MCP server.
          "stringResult": "A String",
          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result content.
          "is_error": True or False, # Whether the URL context resulted in an error.
          "result": [ # Required. The results of the URL context.
            { # The result of the URL context.
              "status": "A String", # The status of the URL retrieval.
              "url": "A String", # The URL that was fetched.
            },
          ],
        },
      },
      "video": { # A video content block.
        "data": "A String", # The video content.
        "mime_type": "A String", # The mime type of the video.
        "resolution": "A String", # The resolution of the media.
        "uri": "A String", # The URI of the video.
      },
    },
    "index": 42,
  },
  "contentStop": { # The content block stop data, used for content.stop events.
    "index": 42,
  },
  "errorEvent": { # The error event data, used for error events.
    "error": { # Error message from an interaction.
      "code": "A String", # A URI that identifies the error type.
      "message": "A String", # A human-readable error message.
    },
  },
  "event_id": "A String", # The event_id token to be used to resume the interaction stream, from this event.
  "interactionCompleteEvent": { # The interaction data, used for interaction.complete events.
    "interaction": { # Response for InteractionService.CreateInteraction. # Required. The completed interaction with empty outputs to reduce the payload size. Use the preceding ContentDelta events for the actual output.
      "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
        "agent": "A String", # The name of the `Agent` used for generating the completion.
        "deep_research_config": { # Configuration for the Deep Research agent.
          "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamic_config": { # Configuration for dynamic agents.
          "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "content": { # The content of the response. # The content for the interaction.
        "audio": { # An audio content block.
          "channels": 42, # The number of audio channels.
          "data": "A String", # The audio content.
          "mime_type": "A String", # The mime type of the audio.
          "sample_rate": 42, # The sample rate of the audio.
          "uri": "A String", # The URI of the audio.
        },
        "document": { # A document content block.
          "data": "A String", # The document content.
          "mime_type": "A String", # The mime type of the document.
          "uri": "A String", # The URI of the document.
        },
        "image": { # An image content block.
          "data": "A String", # The image content.
          "mime_type": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "end_index": 42, # End of the attributed segment, exclusive.
              "file_citation": { # A file citation annotation. # A file citation annotation.
                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "document_uri": "A String", # The URI of the file.
                "file_name": "A String", # The name of the file.
                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                "page_number": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "place_citation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "review_id": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                "title": "A String", # The title of the URL.
                "url": "A String", # The URL.
              },
            },
          ],
          "text": "A String", # Required. The text content.
        },
        "thought": { # A thought content block.
          "signature": "A String", # Signature to match the backend source to be part of the generation.
          "summary": [ # A summary of the thought.
            {
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "toolCall": { # Tool call content.
          "codeExecutionCall": { # Code execution content.
            "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
              "code": "A String", # The code to be executed.
              "language": "A String", # Programming language of the `code`.
            },
          },
          "fileSearchCall": { # File Search content.
          },
          "functionCall": { # A function tool call content block.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool to call.
          },
          "googleMapsCall": { # Google Maps content.
            "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
              "queries": [ # The queries to be executed.
                "A String",
              ],
            },
          },
          "googleSearchCall": { # Google Search content.
            "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
              "queries": [ # Web search queries for the following-up web search.
                "A String",
              ],
            },
            "search_type": "A String", # The type of search grounding enabled.
          },
          "id": "A String", # Required. A unique ID for this specific tool call.
          "mcpServerToolCall": { # MCPServer tool call content.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "server_name": "A String", # Required. The name of the used MCP server.
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextCall": { # URL context content.
            "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
              "urls": [ # The URLs to fetch.
                "A String",
              ],
            },
          },
        },
        "toolResult": { # Tool result content.
          "call_id": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "is_error": True or False, # Whether the code execution resulted in an error.
            "result": "A String", # Required. The output of the code execution.
          },
          "fileSearchResult": { # File Search result content.
            "result": [ # Optional. The results of the File Search.
              { # The result of the File Search.
              },
            ],
          },
          "functionResult": { # A function tool result content block.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "is_error": True or False, # Whether the tool call resulted in an error.
            "name": "A String", # The name of the tool that was called.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result content.
            "result": [ # Required. The results of the Google Maps.
              { # The result of the Google Maps.
                "places": [ # The places that were found.
                  {
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "is_error": True or False, # Whether the Google Search resulted in an error.
            "result": [ # Required. The results of the Google Search.
              { # The result of the Google Search.
                "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result content.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "server_name": "A String", # The name of the used MCP server.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "is_error": True or False, # Whether the URL context resulted in an error.
            "result": [ # Required. The results of the URL context.
              { # The result of the URL context.
                "status": "A String", # The status of the URL retrieval.
                "url": "A String", # The URL that was fetched.
              },
            ],
          },
        },
        "video": { # A video content block.
          "data": "A String", # The video content.
          "mime_type": "A String", # The mime type of the video.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the video.
        },
      },
      "contentList": { # A list of Content. # The inputs for the interaction.
        "contents": [ # The contents of the list.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
      "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
        "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "image_config": { # The configuration for image interaction. # Configuration for image interaction.
            "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
            "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "max_output_tokens": 42, # The maximum number of tokens to include in the response.
          "seed": 42, # Seed used in decoding for reproducibility.
          "speech_config": [ # Configuration for speech interaction.
            { # The configuration for speech interaction.
              "language": "A String", # The language of the speech.
              "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
              "voice": "A String", # The voice of the speaker.
            },
          ],
          "stop_sequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinking_level": "A String", # The level of thought tokens that the model should generate.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
              "mode": "A String", # The mode of the tool choice.
              "tools": [ # The names of the allowed tools.
                "A String",
              ],
            },
          },
          "toolChoiceMode": "A String", # The mode of the tool choice.
          "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
        },
        "model": "A String", # The name of the `Model` used for generating the completion.
      },
      "outputs": [ # Output only. Responses from the model.
        { # The content of the response.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mime_type": "A String", # The mime type of the audio.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String", # The URI of the audio.
          },
          "document": { # A document content block.
            "data": "A String", # The document content.
            "mime_type": "A String", # The mime type of the document.
            "uri": "A String", # The URI of the document.
          },
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
          "thought": { # A thought content block.
            "signature": "A String", # Signature to match the backend source to be part of the generation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call content.
            "codeExecutionCall": { # Code execution content.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search content.
            },
            "functionCall": { # A function tool call content block.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps content.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search content.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call content.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context content.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result content.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result content.
              "result": [ # Optional. The results of the File Search.
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": { # A function tool result content block.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result content.
              "result": [ # Required. The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result content.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": { # A video content block.
            "data": "A String", # The video content.
            "mime_type": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
      "responseFormatList": {
        "response_formats": [
          {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
          "delivery": "A String", # The delivery mode for the audio output.
          "mime_type": "A String", # The MIME type of the audio output.
          "sample_rate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspect_ratio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "image_size": "A String", # The size of the image output.
          "mime_type": "A String", # The MIME type of the image output.
        },
        "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
            { # Represents a single field in a struct.
              "name": "A String",
              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                "boolValue": True or False, # Represents a boolean value.
                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                  "values": [ # Repeated field of dynamically typed values.
                    # Object with schema name: GenaiValue
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mime_type": "A String", # The MIME type of the text output.
          "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "video": { # Configuration for video output format.
        },
      },
      "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
        "boolValue": True or False, # Represents a boolean value.
        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
          "values": [ # Repeated field of dynamically typed values.
            # Object with schema name: GenaiValue
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
      },
      "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
      "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
        "A String",
      ],
      "role": "A String", # Output only. The role of the interaction.
      "status": "A String", # Required. Output only. The status of the interaction.
      "stepList": { # A list of Steps. # Input only. The steps for the interaction.
        "steps": [ # The steps of the list.
          { # A step in the interaction.
            "modelOutput": { # Output generated by the model.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "thought": { # A thought step.
              "signature": "A String", # A signature hash for backend validation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call step.
              "codeExecutionCall": { # Code execution call step.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search call step.
              },
              "functionCall": { # A function tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps call step.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search call step.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context call step.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result step.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result step.
              },
              "functionResult": { # Result of a function tool call.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "place_id": "A String",
                        "review_snippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widget_context_token": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "userInput": { # Input provided by the user.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
          },
        ],
      },
      "steps": [ # Output only. The steps that make up the interaction.
        { # A step in the interaction.
          "modelOutput": { # Output generated by the model.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "thought": { # A thought step.
            "signature": "A String", # A signature hash for backend validation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call step.
            "codeExecutionCall": { # Code execution call step.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search call step.
            },
            "functionCall": { # A function tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps call step.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search call step.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context call step.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result step.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result step.
            },
            "functionResult": { # Result of a function tool call.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "place_id": "A String",
                      "review_snippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widget_context_token": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "userInput": { # Input provided by the user.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "system_instruction": "A String", # System instruction for the interaction.
      "tools": [ # A list of tool declarations the model may call during interaction.
        { # A tool that can be used by the model.
          "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
          },
          "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
            "environment": "A String", # The environment being operated.
            "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
              "A String",
            ],
          },
          "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
            "file_search_store_names": [ # The file search store names to search.
              "A String",
            ],
            "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "top_k": 42, # The number of semantic retrieval chunks to retrieve.
          },
          "function": { # A tool that can be used by the model. # A function that can be used by the model.
            "description": "A String", # A description of the function.
            "name": "A String", # The name of the function.
            "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
              "boolValue": True or False, # Represents a boolean value.
              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                "values": [ # Repeated field of dynamically typed values.
                  # Object with schema name: GenaiValue
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
            },
          },
          "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
            "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
            "latitude": 3.14, # The latitude of the user's location.
            "longitude": 3.14, # The longitude of the user's location.
          },
          "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
            "search_types": [ # The types of search grounding to enable.
              "A String",
            ],
          },
          "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
            "allowed_tools": [ # The allowed tools.
              { # The configuration for allowed tools.
                "mode": "A String", # The mode of the tool choice.
                "tools": [ # The names of the allowed tools.
                  "A String",
                ],
              },
            ],
            "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
              "a_key": "A String",
            },
            "name": "A String", # The name of the MCPServer.
            "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
          },
          "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
            "retrieval_types": [ # The types of file retrieval to enable.
              "A String",
            ],
            "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
              "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                "A String",
              ],
              "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
            },
          },
          "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
          },
        },
      ],
      "turnList": { # A list of Turns. # The turns for the interaction.
        "turns": [
          {
            "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
              "contents": [ # The contents of the list.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "contentString": "A String", # The content of the turn. A single string.
            "role": "A String", # The originator of this turn. Must be user for input or model for model output.
          },
        ],
      },
      "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
        "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "grounding_tool_count": [ # Grounding tool count.
          { # The number of grounding tool counts.
            "count": 42, # The number of grounding tool counts.
            "type": "A String", # The grounding tool type associated with the count.
          },
        ],
        "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "total_input_tokens": 42, # Number of tokens in the prompt (context).
        "total_output_tokens": 42, # Total number of tokens across all the generated responses.
        "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
        "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
      },
    },
  },
  "interactionCompletedEvent": { # The interaction data, used for interaction.completed events.
    "interaction": { # Response for InteractionService.CreateInteraction. # Required. The completed interaction with empty outputs to reduce the payload size. Use the preceding ContentDelta events for the actual output.
      "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
        "agent": "A String", # The name of the `Agent` used for generating the completion.
        "deep_research_config": { # Configuration for the Deep Research agent.
          "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamic_config": { # Configuration for dynamic agents.
          "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "content": { # The content of the response. # The content for the interaction.
        "audio": { # An audio content block.
          "channels": 42, # The number of audio channels.
          "data": "A String", # The audio content.
          "mime_type": "A String", # The mime type of the audio.
          "sample_rate": 42, # The sample rate of the audio.
          "uri": "A String", # The URI of the audio.
        },
        "document": { # A document content block.
          "data": "A String", # The document content.
          "mime_type": "A String", # The mime type of the document.
          "uri": "A String", # The URI of the document.
        },
        "image": { # An image content block.
          "data": "A String", # The image content.
          "mime_type": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "end_index": 42, # End of the attributed segment, exclusive.
              "file_citation": { # A file citation annotation. # A file citation annotation.
                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "document_uri": "A String", # The URI of the file.
                "file_name": "A String", # The name of the file.
                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                "page_number": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "place_citation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "review_id": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                "title": "A String", # The title of the URL.
                "url": "A String", # The URL.
              },
            },
          ],
          "text": "A String", # Required. The text content.
        },
        "thought": { # A thought content block.
          "signature": "A String", # Signature to match the backend source to be part of the generation.
          "summary": [ # A summary of the thought.
            {
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "toolCall": { # Tool call content.
          "codeExecutionCall": { # Code execution content.
            "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
              "code": "A String", # The code to be executed.
              "language": "A String", # Programming language of the `code`.
            },
          },
          "fileSearchCall": { # File Search content.
          },
          "functionCall": { # A function tool call content block.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool to call.
          },
          "googleMapsCall": { # Google Maps content.
            "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
              "queries": [ # The queries to be executed.
                "A String",
              ],
            },
          },
          "googleSearchCall": { # Google Search content.
            "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
              "queries": [ # Web search queries for the following-up web search.
                "A String",
              ],
            },
            "search_type": "A String", # The type of search grounding enabled.
          },
          "id": "A String", # Required. A unique ID for this specific tool call.
          "mcpServerToolCall": { # MCPServer tool call content.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "server_name": "A String", # Required. The name of the used MCP server.
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextCall": { # URL context content.
            "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
              "urls": [ # The URLs to fetch.
                "A String",
              ],
            },
          },
        },
        "toolResult": { # Tool result content.
          "call_id": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "is_error": True or False, # Whether the code execution resulted in an error.
            "result": "A String", # Required. The output of the code execution.
          },
          "fileSearchResult": { # File Search result content.
            "result": [ # Optional. The results of the File Search.
              { # The result of the File Search.
              },
            ],
          },
          "functionResult": { # A function tool result content block.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "is_error": True or False, # Whether the tool call resulted in an error.
            "name": "A String", # The name of the tool that was called.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result content.
            "result": [ # Required. The results of the Google Maps.
              { # The result of the Google Maps.
                "places": [ # The places that were found.
                  {
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "is_error": True or False, # Whether the Google Search resulted in an error.
            "result": [ # Required. The results of the Google Search.
              { # The result of the Google Search.
                "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result content.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "server_name": "A String", # The name of the used MCP server.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "is_error": True or False, # Whether the URL context resulted in an error.
            "result": [ # Required. The results of the URL context.
              { # The result of the URL context.
                "status": "A String", # The status of the URL retrieval.
                "url": "A String", # The URL that was fetched.
              },
            ],
          },
        },
        "video": { # A video content block.
          "data": "A String", # The video content.
          "mime_type": "A String", # The mime type of the video.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the video.
        },
      },
      "contentList": { # A list of Content. # The inputs for the interaction.
        "contents": [ # The contents of the list.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
      "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
        "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "image_config": { # The configuration for image interaction. # Configuration for image interaction.
            "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
            "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "max_output_tokens": 42, # The maximum number of tokens to include in the response.
          "seed": 42, # Seed used in decoding for reproducibility.
          "speech_config": [ # Configuration for speech interaction.
            { # The configuration for speech interaction.
              "language": "A String", # The language of the speech.
              "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
              "voice": "A String", # The voice of the speaker.
            },
          ],
          "stop_sequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinking_level": "A String", # The level of thought tokens that the model should generate.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
              "mode": "A String", # The mode of the tool choice.
              "tools": [ # The names of the allowed tools.
                "A String",
              ],
            },
          },
          "toolChoiceMode": "A String", # The mode of the tool choice.
          "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
        },
        "model": "A String", # The name of the `Model` used for generating the completion.
      },
      "outputs": [ # Output only. Responses from the model.
        { # The content of the response.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mime_type": "A String", # The mime type of the audio.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String", # The URI of the audio.
          },
          "document": { # A document content block.
            "data": "A String", # The document content.
            "mime_type": "A String", # The mime type of the document.
            "uri": "A String", # The URI of the document.
          },
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
          "thought": { # A thought content block.
            "signature": "A String", # Signature to match the backend source to be part of the generation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call content.
            "codeExecutionCall": { # Code execution content.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search content.
            },
            "functionCall": { # A function tool call content block.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps content.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search content.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call content.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context content.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result content.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result content.
              "result": [ # Optional. The results of the File Search.
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": { # A function tool result content block.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result content.
              "result": [ # Required. The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result content.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": { # A video content block.
            "data": "A String", # The video content.
            "mime_type": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
      "responseFormatList": {
        "response_formats": [
          {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
          "delivery": "A String", # The delivery mode for the audio output.
          "mime_type": "A String", # The MIME type of the audio output.
          "sample_rate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspect_ratio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "image_size": "A String", # The size of the image output.
          "mime_type": "A String", # The MIME type of the image output.
        },
        "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
            { # Represents a single field in a struct.
              "name": "A String",
              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                "boolValue": True or False, # Represents a boolean value.
                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                  "values": [ # Repeated field of dynamically typed values.
                    # Object with schema name: GenaiValue
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mime_type": "A String", # The MIME type of the text output.
          "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "video": { # Configuration for video output format.
        },
      },
      "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
        "boolValue": True or False, # Represents a boolean value.
        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
          "values": [ # Repeated field of dynamically typed values.
            # Object with schema name: GenaiValue
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
      },
      "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
      "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
        "A String",
      ],
      "role": "A String", # Output only. The role of the interaction.
      "status": "A String", # Required. Output only. The status of the interaction.
      "stepList": { # A list of Steps. # Input only. The steps for the interaction.
        "steps": [ # The steps of the list.
          { # A step in the interaction.
            "modelOutput": { # Output generated by the model.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "thought": { # A thought step.
              "signature": "A String", # A signature hash for backend validation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call step.
              "codeExecutionCall": { # Code execution call step.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search call step.
              },
              "functionCall": { # A function tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps call step.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search call step.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context call step.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result step.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result step.
              },
              "functionResult": { # Result of a function tool call.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "place_id": "A String",
                        "review_snippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widget_context_token": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "userInput": { # Input provided by the user.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
          },
        ],
      },
      "steps": [ # Output only. The steps that make up the interaction.
        { # A step in the interaction.
          "modelOutput": { # Output generated by the model.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "thought": { # A thought step.
            "signature": "A String", # A signature hash for backend validation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call step.
            "codeExecutionCall": { # Code execution call step.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search call step.
            },
            "functionCall": { # A function tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps call step.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search call step.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context call step.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result step.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result step.
            },
            "functionResult": { # Result of a function tool call.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "place_id": "A String",
                      "review_snippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widget_context_token": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "userInput": { # Input provided by the user.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "system_instruction": "A String", # System instruction for the interaction.
      "tools": [ # A list of tool declarations the model may call during interaction.
        { # A tool that can be used by the model.
          "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
          },
          "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
            "environment": "A String", # The environment being operated.
            "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
              "A String",
            ],
          },
          "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
            "file_search_store_names": [ # The file search store names to search.
              "A String",
            ],
            "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "top_k": 42, # The number of semantic retrieval chunks to retrieve.
          },
          "function": { # A tool that can be used by the model. # A function that can be used by the model.
            "description": "A String", # A description of the function.
            "name": "A String", # The name of the function.
            "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
              "boolValue": True or False, # Represents a boolean value.
              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                "values": [ # Repeated field of dynamically typed values.
                  # Object with schema name: GenaiValue
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
            },
          },
          "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
            "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
            "latitude": 3.14, # The latitude of the user's location.
            "longitude": 3.14, # The longitude of the user's location.
          },
          "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
            "search_types": [ # The types of search grounding to enable.
              "A String",
            ],
          },
          "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
            "allowed_tools": [ # The allowed tools.
              { # The configuration for allowed tools.
                "mode": "A String", # The mode of the tool choice.
                "tools": [ # The names of the allowed tools.
                  "A String",
                ],
              },
            ],
            "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
              "a_key": "A String",
            },
            "name": "A String", # The name of the MCPServer.
            "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
          },
          "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
            "retrieval_types": [ # The types of file retrieval to enable.
              "A String",
            ],
            "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
              "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                "A String",
              ],
              "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
            },
          },
          "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
          },
        },
      ],
      "turnList": { # A list of Turns. # The turns for the interaction.
        "turns": [
          {
            "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
              "contents": [ # The contents of the list.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "contentString": "A String", # The content of the turn. A single string.
            "role": "A String", # The originator of this turn. Must be user for input or model for model output.
          },
        ],
      },
      "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
        "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "grounding_tool_count": [ # Grounding tool count.
          { # The number of grounding tool counts.
            "count": 42, # The number of grounding tool counts.
            "type": "A String", # The grounding tool type associated with the count.
          },
        ],
        "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "total_input_tokens": 42, # Number of tokens in the prompt (context).
        "total_output_tokens": 42, # Total number of tokens across all the generated responses.
        "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
        "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
      },
    },
  },
  "interactionCreatedEvent": { # The interaction data, used for interaction.created events.
    "interaction": { # Response for InteractionService.CreateInteraction.
      "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
        "agent": "A String", # The name of the `Agent` used for generating the completion.
        "deep_research_config": { # Configuration for the Deep Research agent.
          "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamic_config": { # Configuration for dynamic agents.
          "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "content": { # The content of the response. # The content for the interaction.
        "audio": { # An audio content block.
          "channels": 42, # The number of audio channels.
          "data": "A String", # The audio content.
          "mime_type": "A String", # The mime type of the audio.
          "sample_rate": 42, # The sample rate of the audio.
          "uri": "A String", # The URI of the audio.
        },
        "document": { # A document content block.
          "data": "A String", # The document content.
          "mime_type": "A String", # The mime type of the document.
          "uri": "A String", # The URI of the document.
        },
        "image": { # An image content block.
          "data": "A String", # The image content.
          "mime_type": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "end_index": 42, # End of the attributed segment, exclusive.
              "file_citation": { # A file citation annotation. # A file citation annotation.
                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "document_uri": "A String", # The URI of the file.
                "file_name": "A String", # The name of the file.
                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                "page_number": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "place_citation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "review_id": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                "title": "A String", # The title of the URL.
                "url": "A String", # The URL.
              },
            },
          ],
          "text": "A String", # Required. The text content.
        },
        "thought": { # A thought content block.
          "signature": "A String", # Signature to match the backend source to be part of the generation.
          "summary": [ # A summary of the thought.
            {
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "toolCall": { # Tool call content.
          "codeExecutionCall": { # Code execution content.
            "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
              "code": "A String", # The code to be executed.
              "language": "A String", # Programming language of the `code`.
            },
          },
          "fileSearchCall": { # File Search content.
          },
          "functionCall": { # A function tool call content block.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool to call.
          },
          "googleMapsCall": { # Google Maps content.
            "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
              "queries": [ # The queries to be executed.
                "A String",
              ],
            },
          },
          "googleSearchCall": { # Google Search content.
            "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
              "queries": [ # Web search queries for the following-up web search.
                "A String",
              ],
            },
            "search_type": "A String", # The type of search grounding enabled.
          },
          "id": "A String", # Required. A unique ID for this specific tool call.
          "mcpServerToolCall": { # MCPServer tool call content.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "server_name": "A String", # Required. The name of the used MCP server.
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextCall": { # URL context content.
            "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
              "urls": [ # The URLs to fetch.
                "A String",
              ],
            },
          },
        },
        "toolResult": { # Tool result content.
          "call_id": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "is_error": True or False, # Whether the code execution resulted in an error.
            "result": "A String", # Required. The output of the code execution.
          },
          "fileSearchResult": { # File Search result content.
            "result": [ # Optional. The results of the File Search.
              { # The result of the File Search.
              },
            ],
          },
          "functionResult": { # A function tool result content block.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "is_error": True or False, # Whether the tool call resulted in an error.
            "name": "A String", # The name of the tool that was called.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result content.
            "result": [ # Required. The results of the Google Maps.
              { # The result of the Google Maps.
                "places": [ # The places that were found.
                  {
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "is_error": True or False, # Whether the Google Search resulted in an error.
            "result": [ # Required. The results of the Google Search.
              { # The result of the Google Search.
                "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result content.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "server_name": "A String", # The name of the used MCP server.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "is_error": True or False, # Whether the URL context resulted in an error.
            "result": [ # Required. The results of the URL context.
              { # The result of the URL context.
                "status": "A String", # The status of the URL retrieval.
                "url": "A String", # The URL that was fetched.
              },
            ],
          },
        },
        "video": { # A video content block.
          "data": "A String", # The video content.
          "mime_type": "A String", # The mime type of the video.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the video.
        },
      },
      "contentList": { # A list of Content. # The inputs for the interaction.
        "contents": [ # The contents of the list.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
      "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
        "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "image_config": { # The configuration for image interaction. # Configuration for image interaction.
            "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
            "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "max_output_tokens": 42, # The maximum number of tokens to include in the response.
          "seed": 42, # Seed used in decoding for reproducibility.
          "speech_config": [ # Configuration for speech interaction.
            { # The configuration for speech interaction.
              "language": "A String", # The language of the speech.
              "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
              "voice": "A String", # The voice of the speaker.
            },
          ],
          "stop_sequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinking_level": "A String", # The level of thought tokens that the model should generate.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
              "mode": "A String", # The mode of the tool choice.
              "tools": [ # The names of the allowed tools.
                "A String",
              ],
            },
          },
          "toolChoiceMode": "A String", # The mode of the tool choice.
          "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
        },
        "model": "A String", # The name of the `Model` used for generating the completion.
      },
      "outputs": [ # Output only. Responses from the model.
        { # The content of the response.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mime_type": "A String", # The mime type of the audio.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String", # The URI of the audio.
          },
          "document": { # A document content block.
            "data": "A String", # The document content.
            "mime_type": "A String", # The mime type of the document.
            "uri": "A String", # The URI of the document.
          },
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
          "thought": { # A thought content block.
            "signature": "A String", # Signature to match the backend source to be part of the generation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call content.
            "codeExecutionCall": { # Code execution content.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search content.
            },
            "functionCall": { # A function tool call content block.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps content.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search content.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call content.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context content.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result content.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result content.
              "result": [ # Optional. The results of the File Search.
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": { # A function tool result content block.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result content.
              "result": [ # Required. The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result content.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": { # A video content block.
            "data": "A String", # The video content.
            "mime_type": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
      "responseFormatList": {
        "response_formats": [
          {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
          "delivery": "A String", # The delivery mode for the audio output.
          "mime_type": "A String", # The MIME type of the audio output.
          "sample_rate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspect_ratio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "image_size": "A String", # The size of the image output.
          "mime_type": "A String", # The MIME type of the image output.
        },
        "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
            { # Represents a single field in a struct.
              "name": "A String",
              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                "boolValue": True or False, # Represents a boolean value.
                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                  "values": [ # Repeated field of dynamically typed values.
                    # Object with schema name: GenaiValue
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mime_type": "A String", # The MIME type of the text output.
          "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "video": { # Configuration for video output format.
        },
      },
      "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
        "boolValue": True or False, # Represents a boolean value.
        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
          "values": [ # Repeated field of dynamically typed values.
            # Object with schema name: GenaiValue
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
      },
      "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
      "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
        "A String",
      ],
      "role": "A String", # Output only. The role of the interaction.
      "status": "A String", # Required. Output only. The status of the interaction.
      "stepList": { # A list of Steps. # Input only. The steps for the interaction.
        "steps": [ # The steps of the list.
          { # A step in the interaction.
            "modelOutput": { # Output generated by the model.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "thought": { # A thought step.
              "signature": "A String", # A signature hash for backend validation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call step.
              "codeExecutionCall": { # Code execution call step.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search call step.
              },
              "functionCall": { # A function tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps call step.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search call step.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context call step.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result step.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result step.
              },
              "functionResult": { # Result of a function tool call.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "place_id": "A String",
                        "review_snippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widget_context_token": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "userInput": { # Input provided by the user.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
          },
        ],
      },
      "steps": [ # Output only. The steps that make up the interaction.
        { # A step in the interaction.
          "modelOutput": { # Output generated by the model.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "thought": { # A thought step.
            "signature": "A String", # A signature hash for backend validation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call step.
            "codeExecutionCall": { # Code execution call step.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search call step.
            },
            "functionCall": { # A function tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps call step.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search call step.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context call step.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result step.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result step.
            },
            "functionResult": { # Result of a function tool call.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "place_id": "A String",
                      "review_snippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widget_context_token": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "userInput": { # Input provided by the user.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "system_instruction": "A String", # System instruction for the interaction.
      "tools": [ # A list of tool declarations the model may call during interaction.
        { # A tool that can be used by the model.
          "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
          },
          "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
            "environment": "A String", # The environment being operated.
            "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
              "A String",
            ],
          },
          "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
            "file_search_store_names": [ # The file search store names to search.
              "A String",
            ],
            "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "top_k": 42, # The number of semantic retrieval chunks to retrieve.
          },
          "function": { # A tool that can be used by the model. # A function that can be used by the model.
            "description": "A String", # A description of the function.
            "name": "A String", # The name of the function.
            "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
              "boolValue": True or False, # Represents a boolean value.
              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                "values": [ # Repeated field of dynamically typed values.
                  # Object with schema name: GenaiValue
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
            },
          },
          "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
            "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
            "latitude": 3.14, # The latitude of the user's location.
            "longitude": 3.14, # The longitude of the user's location.
          },
          "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
            "search_types": [ # The types of search grounding to enable.
              "A String",
            ],
          },
          "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
            "allowed_tools": [ # The allowed tools.
              { # The configuration for allowed tools.
                "mode": "A String", # The mode of the tool choice.
                "tools": [ # The names of the allowed tools.
                  "A String",
                ],
              },
            ],
            "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
              "a_key": "A String",
            },
            "name": "A String", # The name of the MCPServer.
            "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
          },
          "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
            "retrieval_types": [ # The types of file retrieval to enable.
              "A String",
            ],
            "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
              "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                "A String",
              ],
              "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
            },
          },
          "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
          },
        },
      ],
      "turnList": { # A list of Turns. # The turns for the interaction.
        "turns": [
          {
            "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
              "contents": [ # The contents of the list.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "contentString": "A String", # The content of the turn. A single string.
            "role": "A String", # The originator of this turn. Must be user for input or model for model output.
          },
        ],
      },
      "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
        "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "grounding_tool_count": [ # Grounding tool count.
          { # The number of grounding tool counts.
            "count": 42, # The number of grounding tool counts.
            "type": "A String", # The grounding tool type associated with the count.
          },
        ],
        "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "total_input_tokens": 42, # Number of tokens in the prompt (context).
        "total_output_tokens": 42, # Total number of tokens across all the generated responses.
        "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
        "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
      },
    },
  },
  "interactionStartEvent": { # The interaction data, used for interaction.start events.
    "interaction": { # Response for InteractionService.CreateInteraction.
      "agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
        "agent": "A String", # The name of the `Agent` used for generating the completion.
        "deep_research_config": { # Configuration for the Deep Research agent.
          "collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamic_config": { # Configuration for dynamic agents.
          "config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "content": { # The content of the response. # The content for the interaction.
        "audio": { # An audio content block.
          "channels": 42, # The number of audio channels.
          "data": "A String", # The audio content.
          "mime_type": "A String", # The mime type of the audio.
          "sample_rate": 42, # The sample rate of the audio.
          "uri": "A String", # The URI of the audio.
        },
        "document": { # A document content block.
          "data": "A String", # The document content.
          "mime_type": "A String", # The mime type of the document.
          "uri": "A String", # The URI of the document.
        },
        "image": { # An image content block.
          "data": "A String", # The image content.
          "mime_type": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "end_index": 42, # End of the attributed segment, exclusive.
              "file_citation": { # A file citation annotation. # A file citation annotation.
                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "document_uri": "A String", # The URI of the file.
                "file_name": "A String", # The name of the file.
                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                "page_number": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "place_citation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "review_id": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                "title": "A String", # The title of the URL.
                "url": "A String", # The URL.
              },
            },
          ],
          "text": "A String", # Required. The text content.
        },
        "thought": { # A thought content block.
          "signature": "A String", # Signature to match the backend source to be part of the generation.
          "summary": [ # A summary of the thought.
            {
              "image": { # An image content block.
                "data": "A String", # The image content.
                "mime_type": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "end_index": 42, # End of the attributed segment, exclusive.
                    "file_citation": { # A file citation annotation. # A file citation annotation.
                      "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "document_uri": "A String", # The URI of the file.
                      "file_name": "A String", # The name of the file.
                      "media_id": "A String", # Media ID in-case of image citations, if applicable.
                      "page_number": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "place_citation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "url_citation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "toolCall": { # Tool call content.
          "codeExecutionCall": { # Code execution content.
            "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
              "code": "A String", # The code to be executed.
              "language": "A String", # Programming language of the `code`.
            },
          },
          "fileSearchCall": { # File Search content.
          },
          "functionCall": { # A function tool call content block.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool to call.
          },
          "googleMapsCall": { # Google Maps content.
            "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
              "queries": [ # The queries to be executed.
                "A String",
              ],
            },
          },
          "googleSearchCall": { # Google Search content.
            "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
              "queries": [ # Web search queries for the following-up web search.
                "A String",
              ],
            },
            "search_type": "A String", # The type of search grounding enabled.
          },
          "id": "A String", # Required. A unique ID for this specific tool call.
          "mcpServerToolCall": { # MCPServer tool call content.
            "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "server_name": "A String", # Required. The name of the used MCP server.
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextCall": { # URL context content.
            "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
              "urls": [ # The URLs to fetch.
                "A String",
              ],
            },
          },
        },
        "toolResult": { # Tool result content.
          "call_id": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "is_error": True or False, # Whether the code execution resulted in an error.
            "result": "A String", # Required. The output of the code execution.
          },
          "fileSearchResult": { # File Search result content.
            "result": [ # Optional. The results of the File Search.
              { # The result of the File Search.
              },
            ],
          },
          "functionResult": { # A function tool result content block.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "is_error": True or False, # Whether the tool call resulted in an error.
            "name": "A String", # The name of the tool that was called.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result content.
            "result": [ # Required. The results of the Google Maps.
              { # The result of the Google Maps.
                "places": [ # The places that were found.
                  {
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "is_error": True or False, # Whether the Google Search resulted in an error.
            "result": [ # Required. The results of the Google Search.
              { # The result of the Google Search.
                "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result content.
            "contentList": {
              "contents": [
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "server_name": "A String", # The name of the used MCP server.
            "stringResult": "A String",
            "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "is_error": True or False, # Whether the URL context resulted in an error.
            "result": [ # Required. The results of the URL context.
              { # The result of the URL context.
                "status": "A String", # The status of the URL retrieval.
                "url": "A String", # The URL that was fetched.
              },
            ],
          },
        },
        "video": { # A video content block.
          "data": "A String", # The video content.
          "mime_type": "A String", # The mime type of the video.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the video.
        },
      },
      "contentList": { # A list of Content. # The inputs for the interaction.
        "contents": [ # The contents of the list.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "id": "A String", # Required. Output only. A unique identifier for the interaction completion.
      "modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
        "generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "image_config": { # The configuration for image interaction. # Configuration for image interaction.
            "aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
            "image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "max_output_tokens": 42, # The maximum number of tokens to include in the response.
          "seed": 42, # Seed used in decoding for reproducibility.
          "speech_config": [ # Configuration for speech interaction.
            { # The configuration for speech interaction.
              "language": "A String", # The language of the speech.
              "speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
              "voice": "A String", # The voice of the speaker.
            },
          ],
          "stop_sequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinking_level": "A String", # The level of thought tokens that the model should generate.
          "thinking_summaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowed_tools": { # The configuration for allowed tools. # The allowed tools.
              "mode": "A String", # The mode of the tool choice.
              "tools": [ # The names of the allowed tools.
                "A String",
              ],
            },
          },
          "toolChoiceMode": "A String", # The mode of the tool choice.
          "top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
        },
        "model": "A String", # The name of the `Model` used for generating the completion.
      },
      "outputs": [ # Output only. Responses from the model.
        { # The content of the response.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mime_type": "A String", # The mime type of the audio.
            "sample_rate": 42, # The sample rate of the audio.
            "uri": "A String", # The URI of the audio.
          },
          "document": { # A document content block.
            "data": "A String", # The document content.
            "mime_type": "A String", # The mime type of the document.
            "uri": "A String", # The URI of the document.
          },
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
          "thought": { # A thought content block.
            "signature": "A String", # Signature to match the backend source to be part of the generation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call content.
            "codeExecutionCall": { # Code execution content.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search content.
            },
            "functionCall": { # A function tool call content block.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps content.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search content.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call content.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context content.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result content.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result content.
              "result": [ # Optional. The results of the File Search.
                { # The result of the File Search.
                },
              ],
            },
            "functionResult": { # A function tool result content block.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result content.
              "result": [ # Required. The results of the Google Maps.
                { # The result of the Google Maps.
                  "places": [ # The places that were found.
                    {
                      "name": "A String", # Title of the place.
                      "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                      "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result content.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "video": { # A video content block.
            "data": "A String", # The video content.
            "mime_type": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previous_interaction_id": "A String", # The ID of the previous interaction, if any.
      "responseFormatList": {
        "response_formats": [
          {
            "audio": { # Configuration for audio output format.
              "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
              "delivery": "A String", # The delivery mode for the audio output.
              "mime_type": "A String", # The MIME type of the audio output.
              "sample_rate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspect_ratio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "image_size": "A String", # The size of the image output.
              "mime_type": "A String", # The MIME type of the image output.
            },
            "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiValue
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mime_type": "A String", # The MIME type of the text output.
              "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "video": { # Configuration for video output format.
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
          "delivery": "A String", # The delivery mode for the audio output.
          "mime_type": "A String", # The MIME type of the audio output.
          "sample_rate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspect_ratio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "image_size": "A String", # The size of the image output.
          "mime_type": "A String", # The MIME type of the image output.
        },
        "structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
            { # Represents a single field in a struct.
              "name": "A String",
              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                "boolValue": True or False, # Represents a boolean value.
                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                  "values": [ # Repeated field of dynamically typed values.
                    # Object with schema name: GenaiValue
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mime_type": "A String", # The MIME type of the text output.
          "schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "video": { # Configuration for video output format.
        },
      },
      "response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
        "boolValue": True or False, # Represents a boolean value.
        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
          "values": [ # Repeated field of dynamically typed values.
            # Object with schema name: GenaiValue
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
      },
      "response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
      "response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
        "A String",
      ],
      "role": "A String", # Output only. The role of the interaction.
      "status": "A String", # Required. Output only. The status of the interaction.
      "stepList": { # A list of Steps. # Input only. The steps for the interaction.
        "steps": [ # The steps of the list.
          { # A step in the interaction.
            "modelOutput": { # Output generated by the model.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "thought": { # A thought step.
              "signature": "A String", # A signature hash for backend validation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call step.
              "codeExecutionCall": { # Code execution call step.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search call step.
              },
              "functionCall": { # A function tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps call step.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search call step.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call step.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context call step.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result step.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result step.
              },
              "functionResult": { # Result of a function tool call.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "place_id": "A String",
                        "review_snippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widget_context_token": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "userInput": { # Input provided by the user.
              "content": [
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
          },
        ],
      },
      "steps": [ # Output only. The steps that make up the interaction.
        { # A step in the interaction.
          "modelOutput": { # Output generated by the model.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "thought": { # A thought step.
            "signature": "A String", # A signature hash for backend validation.
            "summary": [ # A summary of the thought.
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "toolCall": { # Tool call step.
            "codeExecutionCall": { # Code execution call step.
              "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                "code": "A String", # The code to be executed.
                "language": "A String", # Programming language of the `code`.
              },
            },
            "fileSearchCall": { # File Search call step.
            },
            "functionCall": { # A function tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool to call.
            },
            "googleMapsCall": { # Google Maps call step.
              "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                "queries": [ # The queries to be executed.
                  "A String",
                ],
              },
            },
            "googleSearchCall": { # Google Search call step.
              "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                "queries": [ # Web search queries for the following-up web search.
                  "A String",
                ],
              },
              "search_type": "A String", # The type of search grounding enabled.
            },
            "id": "A String", # Required. A unique ID for this specific tool call.
            "mcpServerToolCall": { # MCPServer tool call step.
              "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "server_name": "A String", # Required. The name of the used MCP server.
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextCall": { # URL context call step.
              "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                "urls": [ # The URLs to fetch.
                  "A String",
                ],
              },
            },
          },
          "toolResult": { # Tool result step.
            "call_id": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "is_error": True or False, # Whether the code execution resulted in an error.
              "result": "A String", # Required. The output of the code execution.
            },
            "fileSearchResult": { # File Search result step.
            },
            "functionResult": { # Result of a function tool call.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "is_error": True or False, # Whether the tool call resulted in an error.
              "name": "A String", # The name of the tool that was called.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "place_id": "A String",
                      "review_snippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "review_id": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widget_context_token": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "is_error": True or False, # Whether the Google Search resulted in an error.
              "result": [ # Required. The results of the Google Search.
                { # The result of the Google Search.
                  "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": {
                "contents": [
                  {
                    "image": { # An image content block.
                      "data": "A String", # The image content.
                      "mime_type": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "end_index": 42, # End of the attributed segment, exclusive.
                          "file_citation": { # A file citation annotation. # A file citation annotation.
                            "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiValue
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "document_uri": "A String", # The URI of the file.
                            "file_name": "A String", # The name of the file.
                            "media_id": "A String", # Media ID in-case of image citations, if applicable.
                            "page_number": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "place_citation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "url_citation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "server_name": "A String", # The name of the used MCP server.
              "stringResult": "A String",
              "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "is_error": True or False, # Whether the URL context resulted in an error.
              "result": [ # Required. The results of the URL context.
                { # The result of the URL context.
                  "status": "A String", # The status of the URL retrieval.
                  "url": "A String", # The URL that was fetched.
                },
              ],
            },
          },
          "userInput": { # Input provided by the user.
            "content": [
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mime_type": "A String", # The mime type of the audio.
                  "sample_rate": 42, # The sample rate of the audio.
                  "uri": "A String", # The URI of the audio.
                },
                "document": { # A document content block.
                  "data": "A String", # The document content.
                  "mime_type": "A String", # The mime type of the document.
                  "uri": "A String", # The URI of the document.
                },
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
                "thought": { # A thought content block.
                  "signature": "A String", # Signature to match the backend source to be part of the generation.
                  "summary": [ # A summary of the thought.
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "toolCall": { # Tool call content.
                  "codeExecutionCall": { # Code execution content.
                    "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                      "code": "A String", # The code to be executed.
                      "language": "A String", # Programming language of the `code`.
                    },
                  },
                  "fileSearchCall": { # File Search content.
                  },
                  "functionCall": { # A function tool call content block.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool to call.
                  },
                  "googleMapsCall": { # Google Maps content.
                    "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                      "queries": [ # The queries to be executed.
                        "A String",
                      ],
                    },
                  },
                  "googleSearchCall": { # Google Search content.
                    "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                      "queries": [ # Web search queries for the following-up web search.
                        "A String",
                      ],
                    },
                    "search_type": "A String", # The type of search grounding enabled.
                  },
                  "id": "A String", # Required. A unique ID for this specific tool call.
                  "mcpServerToolCall": { # MCPServer tool call content.
                    "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "server_name": "A String", # Required. The name of the used MCP server.
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextCall": { # URL context content.
                    "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                      "urls": [ # The URLs to fetch.
                        "A String",
                      ],
                    },
                  },
                },
                "toolResult": { # Tool result content.
                  "call_id": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "is_error": True or False, # Whether the code execution resulted in an error.
                    "result": "A String", # Required. The output of the code execution.
                  },
                  "fileSearchResult": { # File Search result content.
                    "result": [ # Optional. The results of the File Search.
                      { # The result of the File Search.
                      },
                    ],
                  },
                  "functionResult": { # A function tool result content block.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "is_error": True or False, # Whether the tool call resulted in an error.
                    "name": "A String", # The name of the tool that was called.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "googleMapsResult": { # Google Maps result content.
                    "result": [ # Required. The results of the Google Maps.
                      { # The result of the Google Maps.
                        "places": [ # The places that were found.
                          {
                            "name": "A String", # Title of the place.
                            "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                            "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "review_id": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "is_error": True or False, # Whether the Google Search resulted in an error.
                    "result": [ # Required. The results of the Google Search.
                      { # The result of the Google Search.
                        "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                      },
                    ],
                  },
                  "mcpServerToolResult": { # MCPServer tool result content.
                    "contentList": {
                      "contents": [
                        {
                          "image": { # An image content block.
                            "data": "A String", # The image content.
                            "mime_type": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "end_index": 42, # End of the attributed segment, exclusive.
                                "file_citation": { # A file citation annotation. # A file citation annotation.
                                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiValue
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "document_uri": "A String", # The URI of the file.
                                  "file_name": "A String", # The name of the file.
                                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                  "page_number": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "place_citation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "review_id": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Name of the tool which is called for this specific tool call.
                    "server_name": "A String", # The name of the used MCP server.
                    "stringResult": "A String",
                    "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "is_error": True or False, # Whether the URL context resulted in an error.
                    "result": [ # Required. The results of the URL context.
                      { # The result of the URL context.
                        "status": "A String", # The status of the URL retrieval.
                        "url": "A String", # The URL that was fetched.
                      },
                    ],
                  },
                },
                "video": { # A video content block.
                  "data": "A String", # The video content.
                  "mime_type": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "system_instruction": "A String", # System instruction for the interaction.
      "tools": [ # A list of tool declarations the model may call during interaction.
        { # A tool that can be used by the model.
          "codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
          },
          "computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
            "environment": "A String", # The environment being operated.
            "excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
              "A String",
            ],
          },
          "fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
            "file_search_store_names": [ # The file search store names to search.
              "A String",
            ],
            "metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "top_k": 42, # The number of semantic retrieval chunks to retrieve.
          },
          "function": { # A tool that can be used by the model. # A function that can be used by the model.
            "description": "A String", # A description of the function.
            "name": "A String", # The name of the function.
            "parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
              "boolValue": True or False, # Represents a boolean value.
              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                "values": [ # Repeated field of dynamically typed values.
                  # Object with schema name: GenaiValue
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
            },
          },
          "googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
            "enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
            "latitude": 3.14, # The latitude of the user's location.
            "longitude": 3.14, # The longitude of the user's location.
          },
          "googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
            "search_types": [ # The types of search grounding to enable.
              "A String",
            ],
          },
          "mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
            "allowed_tools": [ # The allowed tools.
              { # The configuration for allowed tools.
                "mode": "A String", # The mode of the tool choice.
                "tools": [ # The names of the allowed tools.
                  "A String",
                ],
              },
            ],
            "headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
              "a_key": "A String",
            },
            "name": "A String", # The name of the MCPServer.
            "url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
          },
          "retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
            "retrieval_types": [ # The types of file retrieval to enable.
              "A String",
            ],
            "vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
              "datastores": [ # Optional. Used to specify Vertex AI Search datastores.
                "A String",
              ],
              "engine": "A String", # Optional. Used to specify Vertex AI Search engine.
            },
          },
          "urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
          },
        },
      ],
      "turnList": { # A list of Turns. # The turns for the interaction.
        "turns": [
          {
            "contentList": { # A list of Content. # The content of the turn. An array of Content objects.
              "contents": [ # The contents of the list.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mime_type": "A String", # The mime type of the audio.
                    "sample_rate": 42, # The sample rate of the audio.
                    "uri": "A String", # The URI of the audio.
                  },
                  "document": { # A document content block.
                    "data": "A String", # The document content.
                    "mime_type": "A String", # The mime type of the document.
                    "uri": "A String", # The URI of the document.
                  },
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                  "thought": { # A thought content block.
                    "signature": "A String", # Signature to match the backend source to be part of the generation.
                    "summary": [ # A summary of the thought.
                      {
                        "image": { # An image content block.
                          "data": "A String", # The image content.
                          "mime_type": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "end_index": 42, # End of the attributed segment, exclusive.
                              "file_citation": { # A file citation annotation. # A file citation annotation.
                                "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiValue
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "document_uri": "A String", # The URI of the file.
                                "file_name": "A String", # The name of the file.
                                "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                "page_number": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "place_citation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "review_id": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "toolCall": { # Tool call content.
                    "codeExecutionCall": { # Code execution content.
                      "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                        "code": "A String", # The code to be executed.
                        "language": "A String", # Programming language of the `code`.
                      },
                    },
                    "fileSearchCall": { # File Search content.
                    },
                    "functionCall": { # A function tool call content block.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool to call.
                    },
                    "googleMapsCall": { # Google Maps content.
                      "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                        "queries": [ # The queries to be executed.
                          "A String",
                        ],
                      },
                    },
                    "googleSearchCall": { # Google Search content.
                      "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                        "queries": [ # Web search queries for the following-up web search.
                          "A String",
                        ],
                      },
                      "search_type": "A String", # The type of search grounding enabled.
                    },
                    "id": "A String", # Required. A unique ID for this specific tool call.
                    "mcpServerToolCall": { # MCPServer tool call content.
                      "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "server_name": "A String", # Required. The name of the used MCP server.
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextCall": { # URL context content.
                      "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                        "urls": [ # The URLs to fetch.
                          "A String",
                        ],
                      },
                    },
                  },
                  "toolResult": { # Tool result content.
                    "call_id": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "is_error": True or False, # Whether the code execution resulted in an error.
                      "result": "A String", # Required. The output of the code execution.
                    },
                    "fileSearchResult": { # File Search result content.
                      "result": [ # Optional. The results of the File Search.
                        { # The result of the File Search.
                        },
                      ],
                    },
                    "functionResult": { # A function tool result content block.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "is_error": True or False, # Whether the tool call resulted in an error.
                      "name": "A String", # The name of the tool that was called.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "googleMapsResult": { # Google Maps result content.
                      "result": [ # Required. The results of the Google Maps.
                        { # The result of the Google Maps.
                          "places": [ # The places that were found.
                            {
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "is_error": True or False, # Whether the Google Search resulted in an error.
                      "result": [ # Required. The results of the Google Search.
                        { # The result of the Google Search.
                          "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                        },
                      ],
                    },
                    "mcpServerToolResult": { # MCPServer tool result content.
                      "contentList": {
                        "contents": [
                          {
                            "image": { # An image content block.
                              "data": "A String", # The image content.
                              "mime_type": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "end_index": 42, # End of the attributed segment, exclusive.
                                  "file_citation": { # A file citation annotation. # A file citation annotation.
                                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiValue
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "document_uri": "A String", # The URI of the file.
                                    "file_name": "A String", # The name of the file.
                                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                                    "page_number": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "place_citation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "review_id": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Name of the tool which is called for this specific tool call.
                      "server_name": "A String", # The name of the used MCP server.
                      "stringResult": "A String",
                      "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiValue
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "is_error": True or False, # Whether the URL context resulted in an error.
                      "result": [ # Required. The results of the URL context.
                        { # The result of the URL context.
                          "status": "A String", # The status of the URL retrieval.
                          "url": "A String", # The URL that was fetched.
                        },
                      ],
                    },
                  },
                  "video": { # A video content block.
                    "data": "A String", # The video content.
                    "mime_type": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "contentString": "A String", # The content of the turn. A single string.
            "role": "A String", # The originator of this turn. Must be user for input or model for model output.
          },
        ],
      },
      "updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
      "usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
        "cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "grounding_tool_count": [ # Grounding tool count.
          { # The number of grounding tool counts.
            "count": 42, # The number of grounding tool counts.
            "type": "A String", # The grounding tool type associated with the count.
          },
        ],
        "input_tokens_by_modality": [ # A breakdown of input token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "output_tokens_by_modality": [ # A breakdown of output token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
          { # The token count for a single response modality.
            "modality": "A String", # The modality associated with the token count.
            "tokens": 42, # Number of tokens for the modality.
          },
        ],
        "total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "total_input_tokens": 42, # Number of tokens in the prompt (context).
        "total_output_tokens": 42, # Total number of tokens across all the generated responses.
        "total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
        "total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
      },
    },
  },
  "interactionStatusUpdate": { # The interaction status data, used for interaction.status_update events.
    "interaction_id": "A String",
    "status": "A String",
  },
  "stepDelta": { # The step delta data, used for step.delta events.
    "delta": {
      "argumentsDelta": {
        "partial_arguments": "A String",
      },
      "audio": {
        "channels": 42, # The number of audio channels.
        "data": "A String",
        "mime_type": "A String",
        "rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
        "sample_rate": 42, # The sample rate of the audio.
        "uri": "A String",
      },
      "document": {
        "data": "A String",
        "mime_type": "A String",
        "uri": "A String",
      },
      "image": {
        "data": "A String",
        "mime_type": "A String",
        "resolution": "A String", # The resolution of the media.
        "uri": "A String",
      },
      "text": {
        "text": "A String",
      },
      "textAnnotationDelta": {
        "annotations": [ # Citation information for model-generated content.
          { # Citation information for model-generated content.
            "end_index": 42, # End of the attributed segment, exclusive.
            "file_citation": { # A file citation annotation. # A file citation annotation.
              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiValue
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                    },
                  },
                ],
              },
              "document_uri": "A String", # The URI of the file.
              "file_name": "A String", # The name of the file.
              "media_id": "A String", # Media ID in-case of image citations, if applicable.
              "page_number": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "place_citation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "review_id": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "url_citation": { # A URL citation annotation. # A URL citation annotation.
              "title": "A String", # The title of the URL.
              "url": "A String", # The URL.
            },
          },
        ],
      },
      "thoughtSignature": {
        "signature": "A String", # Signature to match the backend source to be part of the generation.
      },
      "thoughtSummary": {
        "content": { # A new summary item to be added to the thought.
          "image": { # An image content block.
            "data": "A String", # The image content.
            "mime_type": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "end_index": 42, # End of the attributed segment, exclusive.
                "file_citation": { # A file citation annotation. # A file citation annotation.
                  "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiValue
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "document_uri": "A String", # The URI of the file.
                  "file_name": "A String", # The name of the file.
                  "media_id": "A String", # Media ID in-case of image citations, if applicable.
                  "page_number": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "place_citation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                  "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "url_citation": { # A URL citation annotation. # A URL citation annotation.
                  "title": "A String", # The title of the URL.
                  "url": "A String", # The URL.
                },
              },
            ],
            "text": "A String", # Required. The text content.
          },
        },
      },
      "video": {
        "data": "A String",
        "mime_type": "A String",
        "resolution": "A String", # The resolution of the media.
        "uri": "A String",
      },
    },
    "index": 42,
  },
  "stepStart": { # The step start data, used for step.start events.
    "index": 42,
    "step": { # A step in the interaction.
      "modelOutput": { # Output generated by the model.
        "content": [
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "thought": { # A thought step.
        "signature": "A String", # A signature hash for backend validation.
        "summary": [ # A summary of the thought.
          {
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
          },
        ],
      },
      "toolCall": { # Tool call step.
        "codeExecutionCall": { # Code execution call step.
          "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
            "code": "A String", # The code to be executed.
            "language": "A String", # Programming language of the `code`.
          },
        },
        "fileSearchCall": { # File Search call step.
        },
        "functionCall": { # A function tool call step.
          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool to call.
        },
        "googleMapsCall": { # Google Maps call step.
          "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
            "queries": [ # The queries to be executed.
              "A String",
            ],
          },
        },
        "googleSearchCall": { # Google Search call step.
          "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
            "queries": [ # Web search queries for the following-up web search.
              "A String",
            ],
          },
          "search_type": "A String", # The type of search grounding enabled.
        },
        "id": "A String", # Required. A unique ID for this specific tool call.
        "mcpServerToolCall": { # MCPServer tool call step.
          "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "server_name": "A String", # Required. The name of the used MCP server.
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextCall": { # URL context call step.
          "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
            "urls": [ # The URLs to fetch.
              "A String",
            ],
          },
        },
      },
      "toolResult": { # Tool result step.
        "call_id": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result step.
          "is_error": True or False, # Whether the code execution resulted in an error.
          "result": "A String", # Required. The output of the code execution.
        },
        "fileSearchResult": { # File Search result step.
        },
        "functionResult": { # Result of a function tool call.
          "contentList": {
            "contents": [
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "is_error": True or False, # Whether the tool call resulted in an error.
          "name": "A String", # The name of the tool that was called.
          "stringResult": "A String",
          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "googleMapsResult": { # Google Maps result step.
          "result": [
            { # The result of the Google Maps.
              "places": [
                {
                  "name": "A String",
                  "place_id": "A String",
                  "review_snippets": [
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "review_id": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String",
                },
              ],
              "widget_context_token": "A String",
            },
          ],
        },
        "googleSearchResult": { # Google Search result step.
          "is_error": True or False, # Whether the Google Search resulted in an error.
          "result": [ # Required. The results of the Google Search.
            { # The result of the Google Search.
              "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": { # MCPServer tool result step.
          "contentList": {
            "contents": [
              {
                "image": { # An image content block.
                  "data": "A String", # The image content.
                  "mime_type": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "end_index": 42, # End of the attributed segment, exclusive.
                      "file_citation": { # A file citation annotation. # A file citation annotation.
                        "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiValue
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "document_uri": "A String", # The URI of the file.
                        "file_name": "A String", # The name of the file.
                        "media_id": "A String", # Media ID in-case of image citations, if applicable.
                        "page_number": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "place_citation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "url_citation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "name": "A String", # Name of the tool which is called for this specific tool call.
          "server_name": "A String", # The name of the used MCP server.
          "stringResult": "A String",
          "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
              { # Represents a single field in a struct.
                "name": "A String",
                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                  "boolValue": True or False, # Represents a boolean value.
                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                    "values": [ # Repeated field of dynamically typed values.
                      # Object with schema name: GenaiValue
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result step.
          "is_error": True or False, # Whether the URL context resulted in an error.
          "result": [ # Required. The results of the URL context.
            { # The result of the URL context.
              "status": "A String", # The status of the URL retrieval.
              "url": "A String", # The URL that was fetched.
            },
          ],
        },
      },
      "userInput": { # Input provided by the user.
        "content": [
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mime_type": "A String", # The mime type of the audio.
              "sample_rate": 42, # The sample rate of the audio.
              "uri": "A String", # The URI of the audio.
            },
            "document": { # A document content block.
              "data": "A String", # The document content.
              "mime_type": "A String", # The mime type of the document.
              "uri": "A String", # The URI of the document.
            },
            "image": { # An image content block.
              "data": "A String", # The image content.
              "mime_type": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "end_index": 42, # End of the attributed segment, exclusive.
                  "file_citation": { # A file citation annotation. # A file citation annotation.
                    "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiValue
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "document_uri": "A String", # The URI of the file.
                    "file_name": "A String", # The name of the file.
                    "media_id": "A String", # Media ID in-case of image citations, if applicable.
                    "page_number": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "place_citation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                    "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "review_id": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "url_citation": { # A URL citation annotation. # A URL citation annotation.
                    "title": "A String", # The title of the URL.
                    "url": "A String", # The URL.
                  },
                },
              ],
              "text": "A String", # Required. The text content.
            },
            "thought": { # A thought content block.
              "signature": "A String", # Signature to match the backend source to be part of the generation.
              "summary": [ # A summary of the thought.
                {
                  "image": { # An image content block.
                    "data": "A String", # The image content.
                    "mime_type": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "end_index": 42, # End of the attributed segment, exclusive.
                        "file_citation": { # A file citation annotation. # A file citation annotation.
                          "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiValue
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "document_uri": "A String", # The URI of the file.
                          "file_name": "A String", # The name of the file.
                          "media_id": "A String", # Media ID in-case of image citations, if applicable.
                          "page_number": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "place_citation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                          "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "review_id": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "url_citation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "toolCall": { # Tool call content.
              "codeExecutionCall": { # Code execution content.
                "arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
                  "code": "A String", # The code to be executed.
                  "language": "A String", # Programming language of the `code`.
                },
              },
              "fileSearchCall": { # File Search content.
              },
              "functionCall": { # A function tool call content block.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool to call.
              },
              "googleMapsCall": { # Google Maps content.
                "arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
                  "queries": [ # The queries to be executed.
                    "A String",
                  ],
                },
              },
              "googleSearchCall": { # Google Search content.
                "arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
                  "queries": [ # Web search queries for the following-up web search.
                    "A String",
                  ],
                },
                "search_type": "A String", # The type of search grounding enabled.
              },
              "id": "A String", # Required. A unique ID for this specific tool call.
              "mcpServerToolCall": { # MCPServer tool call content.
                "arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "server_name": "A String", # Required. The name of the used MCP server.
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextCall": { # URL context content.
                "arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
                  "urls": [ # The URLs to fetch.
                    "A String",
                  ],
                },
              },
            },
            "toolResult": { # Tool result content.
              "call_id": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "is_error": True or False, # Whether the code execution resulted in an error.
                "result": "A String", # Required. The output of the code execution.
              },
              "fileSearchResult": { # File Search result content.
                "result": [ # Optional. The results of the File Search.
                  { # The result of the File Search.
                  },
                ],
              },
              "functionResult": { # A function tool result content block.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "is_error": True or False, # Whether the tool call resulted in an error.
                "name": "A String", # The name of the tool that was called.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result content.
                "result": [ # Required. The results of the Google Maps.
                  { # The result of the Google Maps.
                    "places": [ # The places that were found.
                      {
                        "name": "A String", # Title of the place.
                        "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                        "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "review_id": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widget_context_token": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "is_error": True or False, # Whether the Google Search resulted in an error.
                "result": [ # Required. The results of the Google Search.
                  { # The result of the Google Search.
                    "search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result content.
                "contentList": {
                  "contents": [
                    {
                      "image": { # An image content block.
                        "data": "A String", # The image content.
                        "mime_type": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "end_index": 42, # End of the attributed segment, exclusive.
                            "file_citation": { # A file citation annotation. # A file citation annotation.
                              "custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiValue
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "document_uri": "A String", # The URI of the file.
                              "file_name": "A String", # The name of the file.
                              "media_id": "A String", # Media ID in-case of image citations, if applicable.
                              "page_number": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "place_citation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "place_id": "A String", # The ID of the place, in `places/{place_id}` format.
                              "review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "review_id": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "url_citation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "server_name": "A String", # The name of the used MCP server.
                "stringResult": "A String",
                "structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiValue
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiStruct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "is_error": True or False, # Whether the URL context resulted in an error.
                "result": [ # Required. The results of the URL context.
                  { # The result of the URL context.
                    "status": "A String", # The status of the URL retrieval.
                    "url": "A String", # The URL that was fetched.
                  },
                ],
              },
            },
            "video": { # A video content block.
              "data": "A String", # The video content.
              "mime_type": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
    },
  },
  "stepStop": { # The step stop data, used for step.stop events.
    "index": 42,
  },
}