{
  "revision": "20260921",
  "name": "geminidataanalytics",
  "description": "The Gemini Data Analytics API enables developers to build intelligent data analytics applications. Leverage AI-powered chat interfaces to allow users to interact with and analyze structured data using natural language.",
  "discoveryVersion": "v1",
  "ownerName": "Google",
  "schemas": {
    "GoogleCloudGeminidataanalyticsV1Credentials": {
      "type": "object",
      "properties": {
        "oauth": {
          "description": "OAuth credentials.",
          "$ref": "GoogleCloudGeminidataanalyticsV1OAuthCredentials"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1Credentials",
      "description": "Represents different forms of credential specification."
    },
    "A2aV1ClientCredentialsOAuthFlow": {
      "id": "A2aV1ClientCredentialsOAuthFlow",
      "properties": {
        "tokenUrl": {
          "type": "string",
          "description": "The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS."
        },
        "scopes": {
          "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "refreshUrl": {
          "type": "string",
          "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS."
        }
      },
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1SchemaQuery": {
      "id": "GoogleCloudGeminidataanalyticsV1SchemaQuery",
      "properties": {
        "question": {
          "type": "string",
          "description": "Optional. The question to send to the system for schema resolution."
        }
      },
      "description": "A query for resolving the schema relevant to the posed question.",
      "type": "object"
    },
    "A2aV1Message": {
      "id": "A2aV1Message",
      "properties": {
        "contextId": {
          "type": "string",
          "description": "The context id of the message. This is optional and if set, the message will be associated with the given context."
        },
        "messageId": {
          "description": "The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.",
          "type": "string"
        },
        "taskId": {
          "type": "string",
          "description": "The task id of the message. This is optional and if set, the message will be associated with the given task."
        },
        "metadata": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "description": "protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.",
          "type": "object"
        },
        "extensions": {
          "description": "The URIs of extensions that are present or contributed to this Message.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "role": {
          "description": "A role for the message.",
          "type": "string",
          "enumDescriptions": [
            "",
            "USER role refers to communication from the client to the server.",
            "AGENT role refers to communication from the server to the client."
          ],
          "enum": [
            "ROLE_UNSPECIFIED",
            "ROLE_USER",
            "ROLE_AGENT"
          ]
        },
        "content": {
          "description": "protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.",
          "items": {
            "$ref": "A2aV1Part"
          },
          "type": "array"
        }
      },
      "description": "Message is one unit of communication between client and server. It is associated with a context and optionally a task. Since the server is responsible for the context definition, it must always provide a context_id in its messages. The client can optionally provide the context_id if it knows the context to associate the message to. Similarly for task_id, except the server decides if a task is created and whether to include the task_id.",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1DataQuery": {
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1DataQuery",
      "description": "A query for retrieving data.",
      "properties": {
        "question": {
          "description": "Optional. A natural language question to answer.",
          "type": "string"
        },
        "datasources": {
          "type": "array",
          "description": "Optional. The datasources available to answer the question.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1Datasource"
          }
        },
        "name": {
          "description": "Optional. A snake-case name for the query that reflects its intent. It is used to name the corresponding data result, so that it can be referenced in later steps. * Example: \"total_sales_by_product\" * Example: \"sales_for_product_12345\"",
          "type": "string"
        },
        "looker": {
          "$ref": "GoogleCloudGeminidataanalyticsV1LookerQuery",
          "description": "Optional. A query for retrieving data from a Looker explore."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1ChartMessage": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "GoogleCloudGeminidataanalyticsV1ChartResult",
          "description": "The result of a chart generation query."
        },
        "query": {
          "description": "A query for generating a chart.",
          "$ref": "GoogleCloudGeminidataanalyticsV1ChartQuery"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1ChartMessage",
      "description": "A message produced during chart generation."
    },
    "A2aV1OAuth2SecurityScheme": {
      "properties": {
        "flows": {
          "description": "An object containing configuration information for the flow types supported",
          "$ref": "A2aV1OAuthFlows"
        },
        "description": {
          "description": "Description of this security scheme.",
          "type": "string"
        },
        "oauth2MetadataUrl": {
          "type": "string",
          "description": "URL to the oauth2 authorization server metadata [RFC8414](https://datatracker.ietf.org/doc/html/rfc8414). TLS is required."
        }
      },
      "id": "A2aV1OAuth2SecurityScheme",
      "type": "object"
    },
    "A2aV1Part": {
      "properties": {
        "text": {
          "type": "string"
        },
        "data": {
          "$ref": "A2aV1DataPart"
        },
        "metadata": {
          "type": "object",
          "description": "Optional metadata associated with this part.",
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          }
        },
        "file": {
          "$ref": "A2aV1FilePart"
        }
      },
      "type": "object",
      "id": "A2aV1Part",
      "description": "Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON)."
    },
    "GoogleIamV1Policy": {
      "type": "object",
      "properties": {
        "etag": {
          "format": "byte",
          "type": "string",
          "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost."
        },
        "bindings": {
          "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.",
          "type": "array",
          "items": {
            "$ref": "GoogleIamV1Binding"
          }
        },
        "version": {
          "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
          "format": "int32",
          "type": "integer"
        },
        "auditConfigs": {
          "items": {
            "$ref": "GoogleIamV1AuditConfig"
          },
          "description": "Specifies cloud audit logging configuration for this policy.",
          "type": "array"
        }
      },
      "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).",
      "id": "GoogleIamV1Policy"
    },
    "GoogleCloudGeminidataanalyticsV1CitationSource": {
      "properties": {
        "glossaryTerm": {
          "readOnly": true,
          "description": "Output only. The glossary term used as the source.",
          "$ref": "GoogleCloudGeminidataanalyticsV1GlossaryTerm"
        },
        "uri": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The uri used as the source, such as a web grounding URL."
        },
        "exampleQuery": {
          "description": "Output only. The example query used as the source.",
          "$ref": "GoogleCloudGeminidataanalyticsV1ExampleQuery",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Unique identifier of the source. This ID is service-generated and is unique within the scope of a single `Citation` message."
        },
        "title": {
          "readOnly": true,
          "description": "Output only. The title of the source.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1CitationSource",
      "description": "The source of the citation."
    },
    "A2aV1AgentCapabilities": {
      "properties": {
        "pushNotifications": {
          "type": "boolean",
          "description": "If the agent can send push notifications to the clients webhook"
        },
        "streaming": {
          "description": "If the agent will support streaming responses",
          "type": "boolean"
        },
        "extensions": {
          "description": "Extensions supported by this agent.",
          "items": {
            "$ref": "A2aV1AgentExtension"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "A2aV1AgentCapabilities",
      "description": "Defines the A2A feature set supported by the agent"
    },
    "GoogleCloudGeminidataanalyticsV1LookerGoldenQuery": {
      "properties": {
        "naturalLanguageQuestions": {
          "type": "array",
          "description": "Optional. Natural language questions that a user might ask. For example: \"How many orders were placed last month?\" Must be at most 2,000 bytes per question (approx. 2,000 characters).",
          "items": {
            "type": "string"
          }
        },
        "lookerQuery": {
          "$ref": "GoogleCloudGeminidataanalyticsV1LookerQuery",
          "description": "Optional. The Looker Query corresponding to the natural language questions."
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1LookerGoldenQuery",
      "description": "A golden query for Looker, including natural language questions and a corresponding Looker Query. Analogous to ExampleQuery."
    },
    "GoogleCloudGeminidataanalyticsV1SystemMessage": {
      "properties": {
        "groupId": {
          "format": "int32",
          "type": "integer",
          "description": "Identifies the group that the event belongs to. Similar events are deemed to be logically relevant to each other and should be shown together in the UI."
        },
        "chart": {
          "$ref": "GoogleCloudGeminidataanalyticsV1ChartMessage",
          "description": "A message produced during chart generation."
        },
        "analysis": {
          "description": "A message produced during analysis.",
          "$ref": "GoogleCloudGeminidataanalyticsV1AnalysisMessage"
        },
        "data": {
          "description": "A message produced during data retrieval.",
          "$ref": "GoogleCloudGeminidataanalyticsV1DataMessage"
        },
        "schema": {
          "$ref": "GoogleCloudGeminidataanalyticsV1SchemaMessage",
          "description": "A message produced during schema resolution."
        },
        "text": {
          "description": "A direct natural language response to the user message.",
          "$ref": "GoogleCloudGeminidataanalyticsV1TextMessage"
        },
        "exampleQueries": {
          "$ref": "GoogleCloudGeminidataanalyticsV1ExampleQueries",
          "description": "Optional. A message containing example queries."
        },
        "error": {
          "description": "An error message.",
          "$ref": "GoogleCloudGeminidataanalyticsV1ErrorMessage"
        },
        "citation": {
          "readOnly": true,
          "description": "Output only. Citation information for the system message.",
          "$ref": "GoogleCloudGeminidataanalyticsV1Citation"
        }
      },
      "type": "object",
      "description": "A message from the system in response to the user. This message can also be a message from the user as historical context for multi-turn conversations with the system.",
      "id": "GoogleCloudGeminidataanalyticsV1SystemMessage"
    },
    "GoogleLongrunningOperation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "id": "GoogleLongrunningOperation",
      "properties": {
        "name": {
          "type": "string",
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`."
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "GoogleRpcStatus"
        },
        "metadata": {
          "type": "object",
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object",
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`."
        },
        "done": {
          "type": "boolean",
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1CitationAnchor": {
      "id": "GoogleCloudGeminidataanalyticsV1CitationAnchor",
      "properties": {
        "textMessageAnchor": {
          "description": "Output only. Only set if the citation is for a TextMessage.",
          "$ref": "GoogleCloudGeminidataanalyticsV1CitationAnchorTextMessageCitationAnchor",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "The anchor of the citation."
    },
    "GoogleCloudGeminidataanalyticsV1RetrieveAgentOpsObservabilityResponse": {
      "description": "Response for RetrieveAgentOpsObservability.",
      "properties": {
        "cloudLoggingEnabled": {
          "description": "Output only. Whether Cloud Logging API is enabled.",
          "type": "boolean",
          "readOnly": true
        },
        "bqaaEnabled": {
          "description": "Output only. Whether BigQuery Agent Analytics is enabled.",
          "type": "boolean",
          "readOnly": true
        },
        "cloudMonitoringEnabled": {
          "description": "Output only. Whether Cloud Monitoring API is enabled.",
          "readOnly": true,
          "type": "boolean"
        },
        "bigqueryEnabled": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether BigQuery API is enabled."
        },
        "cloudTraceEnabled": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Whether Cloud Trace API is enabled."
        },
        "telemetryEnabled": {
          "description": "Output only. Whether AgentOps observability telemetry is enabled.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1RetrieveAgentOpsObservabilityResponse"
    },
    "GoogleCloudGeminidataanalyticsV1ConversationReference": {
      "id": "GoogleCloudGeminidataanalyticsV1ConversationReference",
      "type": "object",
      "description": "Reference to a persisted conversation and agent context.",
      "properties": {
        "conversation": {
          "description": "Required. Name of the conversation resource. Format: `projects/{project}/locations/{location}/conversations/{conversation_id}`",
          "type": "string"
        },
        "dataAgentContext": {
          "description": "Required. Context for the chat request using a data agent.",
          "$ref": "GoogleCloudGeminidataanalyticsV1DataAgentContext"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1ChartResult": {
      "properties": {
        "vegaConfig": {
          "type": "object",
          "description": "Optional. A generated Vega chart config. See https://vega.github.io/vega/docs/config/",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          }
        },
        "image": {
          "$ref": "GoogleCloudGeminidataanalyticsV1Blob",
          "description": "Optional. A rendering of the chart if this was requested in the context."
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1ChartResult",
      "description": "The result of a chart generation query."
    },
    "A2aV1StreamResponse": {
      "id": "A2aV1StreamResponse",
      "description": "The stream response for a message. The stream should be one of the following sequences: If the response is a message, the stream should contain one, and only one, message and then close If the response is a task lifecycle, the first response should be a Task object followed by zero or more TaskStatusUpdateEvents and TaskArtifactUpdateEvents. The stream should complete when the Task if in an interrupted or terminal state. A stream that ends before these conditions are met are",
      "type": "object",
      "properties": {
        "artifactUpdate": {
          "$ref": "A2aV1TaskArtifactUpdateEvent"
        },
        "message": {
          "$ref": "A2aV1Message"
        },
        "statusUpdate": {
          "$ref": "A2aV1TaskStatusUpdateEvent"
        },
        "task": {
          "$ref": "A2aV1Task"
        }
      }
    },
    "GoogleCloudLocationListLocationsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudLocationLocation"
          }
        }
      },
      "id": "GoogleCloudLocationListLocationsResponse",
      "description": "The response message for Locations.ListLocations."
    },
    "A2aV1DataPart": {
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          }
        }
      },
      "id": "A2aV1DataPart",
      "description": "DataPart represents a structured blob. This is most commonly a JSON payload.",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1LookerExploreReferences": {
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1LookerExploreReferences",
      "properties": {
        "exploreReferences": {
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1LookerExploreReference"
          },
          "type": "array",
          "description": "Required. References to Looker explores."
        }
      },
      "description": "Message representing references to Looker explores."
    },
    "GoogleCloudGeminidataanalyticsV1LookerQuery": {
      "description": "Looker Query Object [Looker API documentation](https://cloud.google.com/looker/docs/reference/looker-api/latest/methods/Query/run_inline_query).",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1LookerQuery",
      "properties": {
        "sorts": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Optional. The sorts to apply to the explore."
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1LookerQueryFilter"
          },
          "description": "Optional. The filters to apply to the explore."
        },
        "queryId": {
          "description": "Optional. The primary identifier for the query resource in Looker, used for API operations. Maps to `id` (or `slug`) in the Looker API `Query` resource.",
          "type": "string"
        },
        "clientId": {
          "type": "string",
          "description": "Optional. The short alphanumeric identifier for the query, used for share links and Explore URLs (e.g., in the `qid` parameter). Maps to `client_id` in the Looker API `Query` resource."
        },
        "dynamicFields": {
          "description": "Optional. The dynamic fields used in the query.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1DynamicField"
          },
          "type": "array"
        },
        "model": {
          "description": "Required. The LookML model used to generate the query.",
          "type": "string"
        },
        "fields": {
          "items": {
            "type": "string"
          },
          "description": "Optional. The fields to retrieve from the explore.",
          "type": "array"
        },
        "explore": {
          "type": "string",
          "description": "Required. The LookML explore used to generate the query."
        },
        "limit": {
          "description": "Optional. Limit in the query.",
          "type": "string"
        }
      }
    },
    "A2aV1AgentSkill": {
      "type": "object",
      "properties": {
        "name": {
          "description": "A human readable name for the skill.",
          "type": "string"
        },
        "description": {
          "description": "A human (or llm) readable description of the skill details and behaviors.",
          "type": "string"
        },
        "inputModes": {
          "items": {
            "type": "string"
          },
          "description": "Possible input modalities supported.",
          "type": "array"
        },
        "examples": {
          "type": "array",
          "description": "A set of example queries that this skill is designed to address. These examples should help the caller to understand how to craft requests to the agent to achieve specific goals. Example: [\"I need a recipe for bread\"]",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "description": "Unique identifier of the skill within this agent.",
          "type": "string"
        },
        "tags": {
          "description": "A set of tags for the skill to enhance categorization/utilization. Example: [\"cooking\", \"customer support\", \"billing\"]",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "security": {
          "description": "protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Security schemes necessary for the agent to leverage this skill. As in the overall AgentCard.security, this list represents a logical OR of security requirement objects. Each object is a set of security schemes that must be used together (a logical AND). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED",
          "type": "array",
          "items": {
            "$ref": "A2aV1Security"
          }
        },
        "outputModes": {
          "type": "array",
          "description": "Possible output modalities produced",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "AgentSkill represents a unit of action/solution that the agent can perform. One can think of this as a type of highly reliable solution that an agent can be tasked to provide. Agents have the autonomy to choose how and when to use specific skills, but clients should have confidence that if the skill is defined that unit of action can be reliably performed.",
      "id": "A2aV1AgentSkill"
    },
    "GoogleCloudGeminidataanalyticsV1StorageMessage": {
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1StorageMessage",
      "properties": {
        "messageId": {
          "description": "The unique resource name of a chat message.",
          "type": "string"
        },
        "message": {
          "description": "The message content.",
          "$ref": "GoogleCloudGeminidataanalyticsV1Message"
        }
      },
      "description": "A stored message containing user message or system message."
    },
    "A2aV1MutualTlsSecurityScheme": {
      "id": "A2aV1MutualTlsSecurityScheme",
      "type": "object",
      "properties": {
        "description": {
          "description": "Description of this security scheme.",
          "type": "string"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1ChartQuery": {
      "properties": {
        "instructions": {
          "type": "string",
          "description": "Optional. Natural language instructions for generating the chart."
        },
        "dataResultName": {
          "type": "string",
          "description": "Optional. The name of a previously retrieved data result to use in the chart."
        }
      },
      "description": "A query for generating a chart.",
      "id": "GoogleCloudGeminidataanalyticsV1ChartQuery",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1DataMessage": {
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1DataMessage",
      "properties": {
        "result": {
          "$ref": "GoogleCloudGeminidataanalyticsV1DataResult",
          "description": "Retrieved data."
        },
        "bigQueryJob": {
          "description": "A BigQuery job executed by the system to retrieve data.",
          "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryJob"
        },
        "matchedQuery": {
          "description": "A pre-existing query that was matched to retrieve data.",
          "$ref": "GoogleCloudGeminidataanalyticsV1MatchedQuery"
        },
        "query": {
          "$ref": "GoogleCloudGeminidataanalyticsV1DataQuery",
          "description": "A data retrieval query."
        },
        "generatedSql": {
          "description": "SQL generated by the system to retrieve data.",
          "type": "string"
        }
      },
      "description": "A message produced during data retrieval."
    },
    "GoogleCloudGeminidataanalyticsV1ExampleQueries": {
      "type": "object",
      "properties": {
        "exampleQueries": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1ExampleQuery"
          },
          "description": "Optional. A list of derived and authored example queries, providing examples of relevant and commonly used SQL queries and their corresponding natural language queries optionally present. Currently only used for BigQuery data sources."
        }
      },
      "description": "A message containing derived and authored example queries.",
      "id": "GoogleCloudGeminidataanalyticsV1ExampleQueries"
    },
    "GoogleCloudGeminidataanalyticsV1ListMessagesResponse": {
      "description": "Response for listing chat messages.",
      "id": "GoogleCloudGeminidataanalyticsV1ListMessagesResponse",
      "properties": {
        "messages": {
          "description": "The list of chat messages.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1StorageMessage"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        }
      },
      "type": "object"
    },
    "GoogleLongrunningListOperationsResponse": {
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "operations": {
          "items": {
            "$ref": "GoogleLongrunningOperation"
          },
          "description": "A list of operations that matches the specified filter in the request.",
          "type": "array"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "type": "array"
        }
      },
      "description": "The response message for Operations.ListOperations.",
      "id": "GoogleLongrunningListOperationsResponse",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1StudioDatasourceReference": {
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1StudioDatasourceReference",
      "description": "Message representing a reference to a single Looker Studio datasource.",
      "properties": {
        "datasourceId": {
          "type": "string",
          "description": "Required. The id of the datasource."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1OperationMetadata": {
      "properties": {
        "apiVersion": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. API version used to start the operation."
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "format": "google-datetime",
          "type": "string",
          "readOnly": true
        },
        "statusMessage": {
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true
        },
        "target": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Server-defined resource path for the target of the operation."
        },
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "readOnly": true,
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "type": "boolean"
        }
      },
      "description": "Represents the metadata of the long-running operation.",
      "id": "GoogleCloudGeminidataanalyticsV1OperationMetadata",
      "type": "object"
    },
    "A2aV1AgentInterface": {
      "properties": {
        "tenant": {
          "description": "Tenant to be set in the request when calling the agent. Experimental, might still change for 1.0 release.",
          "type": "string"
        },
        "url": {
          "description": "The url this interface is found at.",
          "type": "string"
        },
        "transport": {
          "type": "string",
          "description": "The transport supported this url. This is an open form string, to be easily extended for many transport protocols. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON."
        }
      },
      "id": "A2aV1AgentInterface",
      "description": "Defines additional transport information for the agent.",
      "type": "object"
    },
    "A2aV1TaskStatusUpdateEvent": {
      "description": "TaskStatusUpdateEvent is a delta even on a task indicating that a task has changed.",
      "type": "object",
      "properties": {
        "taskId": {
          "type": "string",
          "description": "The id of the task that is changed"
        },
        "status": {
          "description": "The new status of the task.",
          "$ref": "A2aV1TaskStatus"
        },
        "contextId": {
          "type": "string",
          "description": "The id of the context that the task belongs to"
        },
        "metadata": {
          "description": "Optional metadata to associate with the task update.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "type": "object"
        },
        "final": {
          "description": "Whether this is the last status update expected for this task.",
          "type": "boolean"
        }
      },
      "id": "A2aV1TaskStatusUpdateEvent"
    },
    "GoogleCloudGeminidataanalyticsV1BigQueryPropertyGraphReference": {
      "type": "object",
      "properties": {
        "datasetId": {
          "description": "Required. The dataset that the property graph belongs to.",
          "type": "string"
        },
        "projectId": {
          "description": "Required. The project that the property graph belongs to.",
          "type": "string"
        },
        "propertyGraphId": {
          "description": "Required. The property graph id.",
          "type": "string"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1BigQueryPropertyGraphReference",
      "description": "Message representing a reference to a single BigQuery property graph."
    },
    "GoogleCloudGeminidataanalyticsV1AnalysisMessage": {
      "type": "object",
      "properties": {
        "progressEvent": {
          "description": "An event indicating the progress of the analysis.",
          "$ref": "GoogleCloudGeminidataanalyticsV1AnalysisEvent"
        },
        "query": {
          "description": "An analysis query.",
          "$ref": "GoogleCloudGeminidataanalyticsV1AnalysisQuery"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1AnalysisMessage",
      "description": "A message produced during analysis."
    },
    "GoogleCloudGeminidataanalyticsV1OAuthCredentialsTokenBased": {
      "id": "GoogleCloudGeminidataanalyticsV1OAuthCredentialsTokenBased",
      "type": "object",
      "description": "Read more about Looker access tokens here: https://developers.looker.com/api/advanced-usage/looker-api-oauth",
      "properties": {
        "accessToken": {
          "type": "string",
          "description": "Required. The name of the secret containing the access token."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1LookerQueryFilter": {
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1LookerQueryFilter",
      "description": "A Looker query filter.",
      "properties": {
        "field": {
          "type": "string",
          "description": "Required. The field to filter on."
        },
        "value": {
          "description": "Optional. The value for the field to filter on. Optional so we can preserve the default value as an empty string, important to get a valid and working Looker Explore url.",
          "type": "string"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1OAuthCredentials": {
      "properties": {
        "secret": {
          "description": "Secret-based OAuth credentials.",
          "$ref": "GoogleCloudGeminidataanalyticsV1OAuthCredentialsSecretBased"
        },
        "token": {
          "description": "Token-based OAuth credentials.",
          "$ref": "GoogleCloudGeminidataanalyticsV1OAuthCredentialsTokenBased"
        }
      },
      "description": "Represents OAuth credentials.",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1OAuthCredentials"
    },
    "A2aV1AgentCard": {
      "properties": {
        "version": {
          "description": "The version of the agent. Example: \"1.0.0\"",
          "type": "string"
        },
        "iconUrl": {
          "type": "string",
          "description": "An optional URL to an icon for the agent."
        },
        "preferredTransport": {
          "description": "The transport of the preferred endpoint. If empty, defaults to JSONRPC.",
          "type": "string"
        },
        "provider": {
          "$ref": "A2aV1AgentProvider",
          "description": "The service provider of the agent."
        },
        "signatures": {
          "type": "array",
          "description": "JSON Web Signatures computed for this AgentCard.",
          "items": {
            "$ref": "A2aV1AgentCardSignature"
          }
        },
        "security": {
          "items": {
            "$ref": "A2aV1Security"
          },
          "type": "array",
          "description": "protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Security requirements for contacting the agent. This list can be seen as an OR of ANDs. Each object in the list describes one possible set of security requirements that must be present on a request. This allows specifying, for example, \"callers must either use OAuth OR an API Key AND mTLS.\" Example: security { schemes { key: \"oauth\" value { list: [\"read\"] } } } security { schemes { key: \"api-key\" } schemes { key: \"mtls\" } }"
        },
        "securitySchemes": {
          "additionalProperties": {
            "$ref": "A2aV1SecurityScheme"
          },
          "type": "object",
          "description": "The security scheme details used for authenticating with this agent."
        },
        "protocolVersion": {
          "type": "string",
          "description": "The version of the A2A protocol this agent supports."
        },
        "defaultOutputModes": {
          "items": {
            "type": "string"
          },
          "description": "The mime types supported as outputs from this agent.",
          "type": "array"
        },
        "skills": {
          "description": "Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at.",
          "items": {
            "$ref": "A2aV1AgentSkill"
          },
          "type": "array"
        },
        "defaultInputModes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "protolint:enable REPEATED_FIELD_NAMES_PLURALIZED The set of interaction modes that the agent supports across all skills. This can be overridden per skill. Defined as mime types."
        },
        "documentationUrl": {
          "type": "string",
          "description": "A url to provide additional documentation about the agent."
        },
        "capabilities": {
          "description": "A2A Capability set supported by the agent.",
          "$ref": "A2aV1AgentCapabilities"
        },
        "name": {
          "type": "string",
          "description": "A human readable name for the agent. Example: \"Recipe Agent\""
        },
        "additionalInterfaces": {
          "type": "array",
          "description": "Announcement of additional supported transports. Client can use any of the supported transports.",
          "items": {
            "$ref": "A2aV1AgentInterface"
          }
        },
        "supportsAuthenticatedExtendedCard": {
          "type": "boolean",
          "description": "Whether the agent supports providing an extended agent card when the user is authenticated, i.e. is the card from .well-known different than the card from GetAgentCard."
        },
        "url": {
          "description": "A URL to the address the agent is hosted at. This represents the preferred endpoint as declared by the agent.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "A description of the agent's domain of action/solution space. Example: \"Agent that helps users with recipes and cooking.\""
        }
      },
      "id": "A2aV1AgentCard",
      "description": "AgentCard conveys key information: - Overall details (version, name, description, uses) - Skills; a set of actions/solutions the agent can perform - Default modalities/content types supported by the agent. - Authentication requirements Next ID: 19",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1DataAgent": {
      "id": "GoogleCloudGeminidataanalyticsV1DataAgent",
      "description": "Message describing a DataAgent object.",
      "type": "object",
      "properties": {
        "kmsKey": {
          "description": "Optional. Customer managed encryption key (CMEK) to use for encrypting the DataAgent resources. Cloud KMS CryptoKeys must reside in the same location as the DataAgent. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.",
          "type": "string"
        },
        "purgeTime": {
          "format": "google-datetime",
          "description": "Output only. Timestamp in UTC of when this data agent is considered expired. This is *always* provided on output, regardless of what was sent on input.",
          "type": "string",
          "readOnly": true
        },
        "displayName": {
          "description": "Optional. User friendly display name. * Must be between 1-256 characters.",
          "type": "string"
        },
        "bigqueryAgentAnalyticsEnabled": {
          "description": "Optional. Controls whether BigQuery Agent Analytics trace logging is enabled for the agent. BigQuery Agent Analytics is in Preview and is delivered to enrolled projects only. In a project that is not enrolled this field is accepted and stored, but no trace rows are written and no error is returned. Trace logging is additionally suppressed for the entire turn, without error, when any table in the agent's datasource carries row-level security, column-level security or policy tags. It is also suppressed when that determination cannot be made, for example when the caller lacks permission to list a table's row access policies. Trace rows are written only when this is `true` and `bigquery_agent_analytics_table` is set. On a BigQuery agent, enabling this without a table has no effect: no table is created for the agent and no rows are written. On an agent whose datasource is not BigQuery, `CreateDataAgent` rejects either field with `INVALID_ARGUMENT`. This setting is independent of the project-level BigQuery Agent Analytics setting configured through `SetAgentOpsObservability`. An agent does not inherit that setting.",
          "type": "boolean"
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The time when the data agent was created.",
          "type": "string"
        },
        "bigqueryAgentAnalyticsTable": {
          "description": "Optional. The BigQuery table that BigQuery Agent Analytics trace rows are written to. Has no effect unless `bigquery_agent_analytics_enabled` is `true`. The Preview enrollment described on that field applies here too. The trace table is validated when it is set on `CreateDataAgent`, or when it is included in the `update_mask` of an `UpdateDataAgent` call. The following are rejected with `INVALID_ARGUMENT`: * The table must belong to the same project as the agent. * The agent's datasource must be BigQuery. BigQuery Agent Analytics is not supported for Looker, Looker Studio or AlloyDB agents. These are validated against the agent as sent in the request. An agent that carries no datasource is not validated, and an agent switched to a non-BigQuery datasource is not re-validated; in the latter case no trace rows are written. The destination dataset must already exist and must grant write access to the project's Gemini Data Analytics service agent, whose address is `service-PROJECT_NUMBER@gcp-sa-geminidataanalytics.iam.gserviceaccount.com` (that grant is not performed on your behalf). Without it the agent answers normally and no trace rows are written. Changing the table on an existing agent affects subsequent turns only. Rows already written to the previous table are left in place.",
          "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryTableReference"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Optional. Labels to help users filter related agents. For example, \"sales\", \"business\", \"etl\", and so on. Note labels are used only for filtering and not for policies. See the [labels documentation](https://cloud.google.com/resource-manager/docs/labels-overview) for more details on label usage."
        },
        "description": {
          "type": "string",
          "description": "Optional. Description of the agent. * Must be between 1-1024 characters."
        },
        "dataAnalyticsAgent": {
          "description": "Data analytics agent.",
          "$ref": "GoogleCloudGeminidataanalyticsV1DataAnalyticsAgent"
        },
        "deleteTime": {
          "description": "Output only. [Output only] The time the data agent was soft deleted.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "name": {
          "description": "Optional. Identifier. The unique resource name of a DataAgent. Format: `projects/{project}/locations/{location}/dataAgents/{data_agent_id}` `{data_agent}` is the resource id and should be 63 characters or less and must match the format described in https://google.aip.dev/122#resource-id-segments Example: `projects/1234567890/locations/global/dataAgents/my-agent`. It is recommended to skip setting this field during agent creation as it will be inferred automatically and overwritten with the {parent}/dataAgents/{data_agent_id}.",
          "type": "string"
        },
        "updateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The time when the data agent was last updated.",
          "format": "google-datetime"
        }
      }
    },
    "Empty": {
      "type": "object",
      "properties": {},
      "id": "Empty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }"
    },
    "GoogleIamV1AuditLogConfig": {
      "properties": {
        "exemptedMembers": {
          "items": {
            "type": "string"
          },
          "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
          "type": "array"
        },
        "logType": {
          "type": "string",
          "enumDescriptions": [
            "Default case. Should never be this.",
            "Admin reads. Example: CloudIAM getIamPolicy",
            "Data writes. Example: CloudSQL Users create",
            "Data reads. Example: CloudSQL Users list"
          ],
          "description": "The log type that this config enables.",
          "enum": [
            "LOG_TYPE_UNSPECIFIED",
            "ADMIN_READ",
            "DATA_WRITE",
            "DATA_READ"
          ]
        }
      },
      "id": "GoogleIamV1AuditLogConfig",
      "type": "object",
      "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging."
    },
    "GoogleCloudGeminidataanalyticsV1AnalysisOptionsPython": {
      "type": "object",
      "description": "Options for Python analysis.",
      "id": "GoogleCloudGeminidataanalyticsV1AnalysisOptionsPython",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Optional. Whether to enable Python analysis. Defaults to false."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1ContextSchemaRelationshipSchemaPaths": {
      "id": "GoogleCloudGeminidataanalyticsV1ContextSchemaRelationshipSchemaPaths",
      "description": "Represents an ordered set of paths within the table schema.",
      "properties": {
        "tableFqn": {
          "type": "string",
          "description": "The service-qualified full resource name of the table Ex: bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID"
        },
        "paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The ordered list of paths within the table schema."
        }
      },
      "type": "object"
    },
    "A2aV1AgentCardSignature": {
      "id": "A2aV1AgentCardSignature",
      "type": "object",
      "description": "AgentCardSignature represents a JWS signature of an AgentCard. This follows the JSON format of an RFC 7515 JSON Web Signature (JWS).",
      "properties": {
        "protected": {
          "description": "Required. The protected JWS header for the signature. This is always a base64url-encoded JSON object. Required.",
          "type": "string"
        },
        "signature": {
          "description": "Required. The computed signature, base64url-encoded. Required.",
          "type": "string"
        },
        "header": {
          "description": "The unprotected JWS header values.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "type": "object"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1DataFilter": {
      "description": "A filter on a datasource's underlying data. Filter syntax documentation: https://cloud.google.com/looker/docs/filter-expressions",
      "type": "object",
      "properties": {
        "type": {
          "enumDescriptions": [
            "The filter type was not specified.",
            "A filter that the user configures, and any queries to the Explore will always apply this filter by default. Currently only used for Looker data sources."
          ],
          "type": "string",
          "description": "Optional. The type of filter present on a datasource, such as ALWAYS_FILTER.",
          "enum": [
            "DATA_FILTER_TYPE_UNSPECIFIED",
            "ALWAYS_FILTER"
          ]
        },
        "value": {
          "description": "Optional. The default value used for this filter if the filter is not overridden in a query. For example: [\"after 2024-01-01\", \"123\", \"-fashion\"]",
          "type": "string"
        },
        "field": {
          "type": "string",
          "description": "Optional. The field to filter on. For example: [\"event_date\", \"customer_id\", \"product_category\"]"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1DataFilter"
    },
    "A2aV1ImplicitOAuthFlow": {
      "properties": {
        "authorizationUrl": {
          "type": "string",
          "description": "The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS"
        },
        "scopes": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty."
        },
        "refreshUrl": {
          "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.",
          "type": "string"
        }
      },
      "id": "A2aV1ImplicitOAuthFlow",
      "type": "object"
    },
    "A2aV1StringList": {
      "type": "object",
      "description": "protolint:disable REPEATED_FIELD_NAMES_PLURALIZED",
      "properties": {
        "list": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "A2aV1StringList"
    },
    "GoogleCloudGeminidataanalyticsV1ExampleQuery": {
      "id": "GoogleCloudGeminidataanalyticsV1ExampleQuery",
      "description": "Example of relevant and commonly used SQL query and its corresponding natural language queries optionally present. Currently only used for BigQuery data sources.",
      "properties": {
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1QueryParameter"
          },
          "description": "Optional. The list of query parameters. Example: The parameterized SQL query \"SELECT * FROM my_table WHERE id = @id\" can be matched with any value of id."
        },
        "naturalLanguageQuestion": {
          "description": "Optional. A natural language question that a user might ask. For example: \"How many orders were placed last month?\" Must be at most 2,000 bytes (approx. 2,000 characters).",
          "type": "string"
        },
        "sqlQuery": {
          "type": "string",
          "description": "Optional. The SQL query that should be generated to answer the natural language question. For example: \"SELECT COUNT(*) FROM orders WHERE order_date BETWEEN '2024-01-01' AND '2024-01-31'\" Must be at most 50,000 bytes (approx. 50,000 characters)."
        }
      },
      "type": "object"
    },
    "A2aV1Artifact": {
      "properties": {
        "metadata": {
          "type": "object",
          "description": "Optional metadata included with the artifact.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          }
        },
        "parts": {
          "type": "array",
          "items": {
            "$ref": "A2aV1Part"
          },
          "description": "The content of the artifact."
        },
        "name": {
          "type": "string",
          "description": "A human readable name for the artifact."
        },
        "description": {
          "description": "A human readable description of the artifact, optional.",
          "type": "string"
        },
        "artifactId": {
          "type": "string",
          "description": "Unique identifier (e.g. UUID) for the artifact. It must be at least unique within a task."
        },
        "extensions": {
          "type": "array",
          "description": "The URIs of extensions that are present or contributed to this Artifact.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "A2aV1Artifact",
      "description": "Artifacts are the container for task completed results. These are similar to Messages but are intended to be the product of a task, as opposed to point-to-point communication.",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1Datasource": {
      "description": "A datasource that can be used to answer questions.",
      "id": "GoogleCloudGeminidataanalyticsV1Datasource",
      "properties": {
        "lookerExploreReference": {
          "$ref": "GoogleCloudGeminidataanalyticsV1LookerExploreReference",
          "description": "A reference to a Looker explore."
        },
        "bigqueryPropertyGraphReference": {
          "description": "A reference to a BigQuery property graph.",
          "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryPropertyGraphReference"
        },
        "structSchema": {
          "type": "object",
          "description": "Optional. A struct representation of the schema. This is populated for datasources with schemas that cannot be fully represented by the strongly-typed `schema` field. For Looker datasources, this maps to the LookmlModelExplore type: https://cloud.google.com/looker/docs/reference/looker-api/latest/types/LookmlModelExplore",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          }
        },
        "studioDatasourceId": {
          "description": "A reference to a Looker Studio datasource.",
          "type": "string"
        },
        "bigqueryTableReference": {
          "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryTableReference",
          "description": "A reference to a BigQuery table."
        },
        "schema": {
          "$ref": "GoogleCloudGeminidataanalyticsV1Schema",
          "description": "Optional. The schema of the datasource."
        }
      },
      "type": "object"
    },
    "GoogleIamV1GetIamPolicyRequest": {
      "id": "GoogleIamV1GetIamPolicyRequest",
      "type": "object",
      "properties": {
        "options": {
          "description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`.",
          "$ref": "GoogleIamV1GetPolicyOptions"
        }
      },
      "description": "Request message for `GetIamPolicy` method."
    },
    "GoogleCloudGeminidataanalyticsV1Schema": {
      "properties": {
        "description": {
          "description": "Optional. A textual description of the table's content and purpose. For example: \"Contains information about customer orders in our e-commerce store.\" Currently only used for BigQuery data sources.",
          "type": "string"
        },
        "synonyms": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Optional. A list of alternative names or synonyms that can be used to refer to the table. For example: [\"sales\", \"orders\", \"purchases\"]. Currently only used for BigQuery data sources."
        },
        "displayName": {
          "description": "Optional. Table display_name (same as label in cloud/data_analytics/anarres/data/looker/proto/model_explore.proto), not required, currently only Looker has this field.",
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Optional. A list of tags or keywords associated with the table, used for categorization. For example: [\"transaction\", \"revenue\", \"customer_data\"]. Currently only used for BigQuery data sources."
        },
        "fields": {
          "description": "Optional. The fields in the schema.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1Field"
          }
        },
        "filters": {
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1DataFilter"
          },
          "type": "array",
          "description": "Optional. The filters on the datasource's underlying data. Currently only used for Looker data sources."
        }
      },
      "description": "The schema of a Datasource or QueryResult instance.",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1Schema"
    },
    "GoogleCloudGeminidataanalyticsV1DynamicField": {
      "type": "object",
      "description": "A dynamic field in Looker (Custom Dimension, Custom Measure, or Table Calculation).",
      "id": "GoogleCloudGeminidataanalyticsV1DynamicField",
      "properties": {
        "typeHint": {
          "type": "string",
          "description": "Optional. Identifies the data type the dynamic field's expression should produce."
        },
        "filterExpression": {
          "description": "Optional. Looker expression to filter a base measure.",
          "type": "string"
        },
        "valueFormatName": {
          "type": "string",
          "description": "Optional. Value format name for the dynamic field if using a default named format."
        },
        "description": {
          "type": "string",
          "description": "Optional. Description of the dynamic field."
        },
        "calculationType": {
          "type": "string",
          "description": "Optional. Calculation type for table calculations. Refer to https://docs.cloud.google.com/looker/docs/reference/param-lookml-dashboard-table-chart#calculation_type for all possible values depending on the `category` of dynamic field."
        },
        "isDisabled": {
          "type": "boolean",
          "description": "Optional. Whether the dynamic field is disabled."
        },
        "kindHint": {
          "type": "string",
          "description": "Optional. Identifies whether the dynamic field returns a dimension or measure."
        },
        "expression": {
          "type": "string",
          "description": "Optional. Looker expression to create a table calculation."
        },
        "type": {
          "description": "Optional. For custom measures, this identifies the type of aggregation (e.g. sum).",
          "type": "string"
        },
        "valueFormat": {
          "description": "Optional. Value format for the dynamic field.",
          "type": "string"
        },
        "category": {
          "description": "Optional. The type of dynamic field: dimension, measure, table_calculation. Looker can use the category type to specify the name of the dynamic field. However, Looker Conversational Analytics keeps the category separate from the name of the dynamic field. For more details, see https://docs.cloud.google.com/looker/docs/reference/param-lookml-dashboard-table-chart#dynamic_fields.",
          "type": "string"
        },
        "args": {
          "type": "array",
          "description": "Optional. Arguments for custom groups, custom bins, or shortcut calculations. For more details, refer to https://docs.cloud.google.com/looker/docs/reference/param-lookml-dashboard-table-chart#args_for_custom_groups",
          "items": {
            "type": "string"
          }
        },
        "basedOn": {
          "type": "string",
          "description": "Optional. For custom measures, this identifies the measure the field is based on."
        },
        "label": {
          "description": "Optional. The label defines the display name of the dynamic field.",
          "type": "string"
        },
        "name": {
          "description": "Optional. The name of the dynamic field in LookML.",
          "type": "string"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1AnalysisEvent": {
      "type": "object",
      "description": "An event indicating the progress of an analysis.",
      "id": "GoogleCloudGeminidataanalyticsV1AnalysisEvent",
      "properties": {
        "error": {
          "description": "A generic error message.",
          "type": "string"
        },
        "executionOutput": {
          "description": "Output from code execution.",
          "type": "string"
        },
        "resultVegaChartJson": {
          "type": "string",
          "description": "Result as Vega chart JSON string."
        },
        "executionError": {
          "description": "An error from code execution.",
          "type": "string"
        },
        "resultNaturalLanguage": {
          "description": "Result as NL string.",
          "type": "string"
        },
        "coderInstruction": {
          "type": "string",
          "description": "Instructions issued for code generation."
        },
        "code": {
          "type": "string",
          "description": "Generated code."
        },
        "resultReferenceData": {
          "type": "string",
          "description": "Result as a reference to a data source."
        },
        "resultCsvData": {
          "description": "Result as CSV string.",
          "type": "string"
        },
        "plannerReasoning": {
          "type": "string",
          "description": "Python codegen planner's reasoning."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1CitationAnchorTextMessageCitationAnchor": {
      "description": "Citation anchor within a TextMessage.",
      "properties": {
        "startOffsetBytes": {
          "format": "int32",
          "readOnly": true,
          "type": "integer",
          "description": "Output only. The offset, measured in UTF-8 bytes, within the part string where the citation begins (inclusive). Example: For the text \"Hello, world\" where \"world\" is cited, the start offset bytes (inclusive) is 7 and the end offset bytes (exclusive) is 12."
        },
        "partIndex": {
          "readOnly": true,
          "type": "integer",
          "description": "Output only. The 0-based index of the part within the TextMessage.parts field.",
          "format": "int32"
        },
        "sourceIds": {
          "type": "array",
          "description": "Output only. The ids of the sources that are cited.",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "endOffsetBytes": {
          "readOnly": true,
          "format": "int32",
          "type": "integer",
          "description": "Output only. The offset, measured in UTF-8 bytes, within the part string where the citation ends (exclusive). Example: For the text \"Hello, world\" where \"world\" is cited, the start offset bytes (inclusive) is 7 and the end offset bytes (exclusive) is 12."
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1CitationAnchorTextMessageCitationAnchor"
    },
    "GoogleCloudGeminidataanalyticsV1Context": {
      "properties": {
        "systemInstruction": {
          "description": "Optional. The basic entry point for data owners creating domain knowledge for Agent. Why: Business jargon (e.g., YTD revenue is calculated as…, Retirement Age is 65 in the USA, etc) and system instructions (e.g., answer like a Pirate) can help the model understand the business context around a user question. Must be at most 250,000 bytes (approx. 250,000 characters for English text).",
          "type": "string"
        },
        "glossaryTerms": {
          "description": "Optional. Term definitions (currently, only user authored) Not supported for databases (alloydb, cloudsql, spanner) data sources.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1GlossaryTerm"
          },
          "type": "array"
        },
        "schemaRelationships": {
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1ContextSchemaRelationship"
          },
          "type": "array",
          "description": "Optional. Relationships between table schema, including referencing and referenced columns."
        },
        "userFunctions": {
          "$ref": "GoogleCloudGeminidataanalyticsV1UserFunctions",
          "description": "Optional. A collection of user functions to be included in context."
        },
        "exampleQueries": {
          "type": "array",
          "description": "Optional. A list of example queries, providing examples of relevant and commonly used SQL queries and their corresponding natural language queries optionally present. Currently only used for BigQuery data sources and databases (alloydb, cloudsql, spanner) data sources.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1ExampleQuery"
          }
        },
        "datasourceReferences": {
          "$ref": "GoogleCloudGeminidataanalyticsV1DatasourceReferences",
          "description": "Required. Data sources that are available for answering the question."
        },
        "lookerGoldenQueries": {
          "type": "array",
          "description": "Optional. A list of golden queries, providing examples of relevant and commonly used Looker queries and their corresponding natural language queries optionally present. Only supported for Looker data sources.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1LookerGoldenQuery"
          }
        },
        "options": {
          "description": "Optional. Additional options for the conversation.",
          "$ref": "GoogleCloudGeminidataanalyticsV1ConversationOptions"
        }
      },
      "description": "A collection of context to apply to this conversation",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1Context"
    },
    "GoogleCloudGeminidataanalyticsV1ClientManagedResourceContext": {
      "id": "GoogleCloudGeminidataanalyticsV1ClientManagedResourceContext",
      "description": "Context with client managed resources. Some clients may not use GDA managed resources including conversations and agents, instead they create and manage their own conversations and agents resources.",
      "type": "object",
      "properties": {
        "inlineContext": {
          "$ref": "GoogleCloudGeminidataanalyticsV1Context",
          "description": "Required. Context for the chat request. Use this to chat without GDA API managed conversation and agent persistence by passing all context inline."
        },
        "conversationId": {
          "type": "string",
          "description": "Optional. The client managed conversation id."
        },
        "agentId": {
          "description": "Optional. The client managed agent id.",
          "type": "string"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1BigQueryRoutineReference": {
      "id": "GoogleCloudGeminidataanalyticsV1BigQueryRoutineReference",
      "properties": {
        "datasetId": {
          "description": "The dataset ID of the routine.",
          "type": "string"
        },
        "projectId": {
          "description": "The project ID of the routine.",
          "type": "string"
        },
        "routineId": {
          "description": "The routine ID of the routine.",
          "type": "string"
        }
      },
      "description": "A reference to a BigQuery routine.",
      "type": "object"
    },
    "GoogleCloudLocationLocation": {
      "type": "object",
      "properties": {
        "labels": {
          "type": "object",
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "additionalProperties": {
            "type": "string"
          }
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "name": {
          "type": "string",
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        }
      },
      "description": "A resource that represents a Google Cloud location.",
      "id": "GoogleCloudLocationLocation"
    },
    "GoogleCloudGeminidataanalyticsV1ErrorMessage": {
      "type": "object",
      "properties": {
        "text": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The text of the error."
        }
      },
      "description": "An error message from a tool call. This message is used to represent an error that occurred while an agent was trying to use a tool. It's important to note that not all errors are terminal. Many are recoverable, and the agent may use the information from this error message to self-correct and retry the tool call or try a different approach. For example, if a data query fails, the agent might receive an `ErrorMessage`, analyze it, and then generate a corrected query. Clients should be cautious about interpreting this message as a definitive failure. It can be part of the agent's normal, iterative process of completing a task. Surfacing these errors directly to end-users without context (e.g., as a \"hard failure\") may be misleading.",
      "id": "GoogleCloudGeminidataanalyticsV1ErrorMessage"
    },
    "GoogleCloudGeminidataanalyticsV1Message": {
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1Message",
      "description": "A message from an interaction between the user and the system.",
      "properties": {
        "systemMessage": {
          "description": "A message from the system in response to the user.",
          "$ref": "GoogleCloudGeminidataanalyticsV1SystemMessage"
        },
        "timestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. For user messages, this is the time at which the system received the message. For system messages, this is the time at which the system generated the message.",
          "format": "google-datetime"
        },
        "messageId": {
          "type": "string",
          "description": "Optional. unique id of the message in the conversation for persistence."
        },
        "userMessage": {
          "description": "A message from the user that is interacting with the system.",
          "$ref": "GoogleCloudGeminidataanalyticsV1UserMessage"
        }
      }
    },
    "A2aV1AgentExtension": {
      "description": "A declaration of an extension supported by an Agent.",
      "id": "A2aV1AgentExtension",
      "properties": {
        "params": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "Optional configuration for the extension.",
          "type": "object"
        },
        "description": {
          "type": "string",
          "description": "A description of how this agent uses this extension. Example: \"Google OAuth 2.0 authentication\""
        },
        "uri": {
          "description": "The URI of the extension. Example: \"https://developers.google.com/identity/protocols/oauth2\"",
          "type": "string"
        },
        "required": {
          "description": "Whether the client must follow specific requirements of the extension. Example: false",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "A2aV1AuthorizationCodeOAuthFlow": {
      "id": "A2aV1AuthorizationCodeOAuthFlow",
      "type": "object",
      "properties": {
        "authorizationUrl": {
          "type": "string",
          "description": "The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS"
        },
        "scopes": {
          "type": "object",
          "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "tokenUrl": {
          "description": "The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.",
          "type": "string"
        },
        "refreshUrl": {
          "type": "string",
          "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS."
        }
      }
    },
    "A2aV1Task": {
      "id": "A2aV1Task",
      "type": "object",
      "description": "Task is the core unit of action for A2A. It has a current status and when results are created for the task they are stored in the artifact. If there are multiple turns for a task, these are stored in history.",
      "properties": {
        "metadata": {
          "type": "object",
          "description": "protolint:enable REPEATED_FIELD_NAMES_PLURALIZED A key/value object to store custom metadata about a task.",
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          }
        },
        "id": {
          "type": "string",
          "description": "Unique identifier (e.g. UUID) for the task, generated by the server for a new task."
        },
        "history": {
          "description": "protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of interactions from a task.",
          "type": "array",
          "items": {
            "$ref": "A2aV1Message"
          }
        },
        "status": {
          "description": "The current status of a Task, including state and a message.",
          "$ref": "A2aV1TaskStatus"
        },
        "contextId": {
          "type": "string",
          "description": "Unique identifier (e.g. UUID) for the contextual collection of interactions (tasks and messages). Created by the A2A server."
        },
        "artifacts": {
          "items": {
            "$ref": "A2aV1Artifact"
          },
          "type": "array",
          "description": "A set of output artifacts for a Task."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1SchemaResult": {
      "properties": {
        "datasources": {
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1Datasource"
          },
          "type": "array",
          "description": "Optional. The datasources used to resolve the schema query."
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1SchemaResult",
      "description": "The result of schema resolution."
    },
    "A2aV1PasswordOAuthFlow": {
      "properties": {
        "scopes": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.",
          "type": "object"
        },
        "tokenUrl": {
          "type": "string",
          "description": "The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS."
        },
        "refreshUrl": {
          "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.",
          "type": "string"
        }
      },
      "id": "A2aV1PasswordOAuthFlow",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1ContextSchemaRelationship": {
      "properties": {
        "confidenceScore": {
          "format": "float",
          "description": "Optional. A confidence score for the suggested relationship. Manually added edges have the highest confidence score.",
          "type": "number"
        },
        "sources": {
          "description": "Optional. Sources which generated the schema relation edge.",
          "type": "array",
          "items": {
            "enum": [
              "SOURCE_UNSPECIFIED",
              "BIGQUERY_JOB_HISTORY",
              "LLM_SUGGESTED",
              "BIGQUERY_TABLE_CONSTRAINTS"
            ],
            "enumDescriptions": [
              "The source of the schema relationship is unspecified.",
              "The source of the schema relationship is BigQuery job history.",
              "The source of the schema relationship is LLM suggested.",
              "The source of the schema relationship is BigQuery table constraints."
            ],
            "type": "string"
          }
        },
        "leftSchemaPaths": {
          "$ref": "GoogleCloudGeminidataanalyticsV1ContextSchemaRelationshipSchemaPaths",
          "description": "An ordered list of fields for the join from the first table. The size of this list must be the same as `right_schema_paths`. Each field at index i in this list must correspond to a field at the same index in the `right_schema_paths` list."
        },
        "rightSchemaPaths": {
          "description": "An ordered list of fields for the join from the second table. The size of this list must be the same as `left_schema_paths`. Each field at index i in this list must correspond to a field at the same index in the `left_schema_paths` list.",
          "$ref": "GoogleCloudGeminidataanalyticsV1ContextSchemaRelationshipSchemaPaths"
        }
      },
      "description": "The relationship between two tables, including referencing and referenced columns. This is a derived context retrieved from Dataplex Dataset Insights.",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1ContextSchemaRelationship"
    },
    "GoogleCloudGeminidataanalyticsV1AnalysisOptions": {
      "description": "Options for analysis.",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1AnalysisOptions",
      "properties": {
        "python": {
          "description": "Optional. Options for Python analysis.",
          "$ref": "GoogleCloudGeminidataanalyticsV1AnalysisOptionsPython"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1DataResult": {
      "properties": {
        "formattedData": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "description": "Properties of the object.",
              "type": "any"
            }
          },
          "description": "Optional. Formatted representation of the data, when applicable. Each row is a struct that directly corresponds to the row at the same index within the `data` field. Its values are string representations of the original data, formatted according to data source specifications (e.g., \"$1,234.56\" for currency). Columns without formatting will default to their raw value representation. If no columns have formatting rules, this field will be empty.",
          "type": "array"
        },
        "name": {
          "type": "string",
          "description": "Optional. A snake-case name for the data result that reflects its contents. The name is used to pass the result around by reference, and serves as a signal about its meaning. * Example: \"total_sales_by_product\" * Example: \"sales_for_product_12345\""
        },
        "schema": {
          "$ref": "GoogleCloudGeminidataanalyticsV1Schema",
          "description": "Optional. The schema of the data."
        },
        "data": {
          "type": "array",
          "description": "Optional. The content of the data. Each row is a struct that matches the schema. Simple values are represented as strings, while nested structures are represented as lists or structs.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object."
            }
          }
        }
      },
      "type": "object",
      "description": "Retrieved data.",
      "id": "GoogleCloudGeminidataanalyticsV1DataResult"
    },
    "GoogleCloudGeminidataanalyticsV1PrivateLookerInstanceInfo": {
      "type": "object",
      "properties": {
        "serviceDirectoryName": {
          "type": "string",
          "description": "The service directory name of the Looker instance."
        },
        "lookerInstanceId": {
          "description": "The Looker instance id.",
          "type": "string"
        }
      },
      "description": "Message representing a private Looker instance info required if the Looker instance is behind a private network.",
      "id": "GoogleCloudGeminidataanalyticsV1PrivateLookerInstanceInfo"
    },
    "GoogleCloudGeminidataanalyticsV1ListDataAgentsResponse": {
      "type": "object",
      "description": "Message for response to listing DataAgents.",
      "id": "GoogleCloudGeminidataanalyticsV1ListDataAgentsResponse",
      "properties": {
        "dataAgents": {
          "type": "array",
          "description": "The list of DataAgent.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
          }
        },
        "unreachable": {
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "The next page token or empty if none.",
          "type": "string"
        }
      }
    },
    "A2aV1AuthenticationInfo": {
      "id": "A2aV1AuthenticationInfo",
      "description": "Defines authentication details, used for push notifications.",
      "type": "object",
      "properties": {
        "schemes": {
          "items": {
            "type": "string"
          },
          "description": "Supported authentication schemes - e.g. Basic, Bearer, etc",
          "type": "array"
        },
        "credentials": {
          "type": "string",
          "description": "Optional credentials"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1DataAnalyticsAgent": {
      "id": "GoogleCloudGeminidataanalyticsV1DataAnalyticsAgent",
      "type": "object",
      "description": "Message describing a DataAnalyticsAgent object.",
      "properties": {
        "lastPublishedContext": {
          "description": "Output only. The last published context for the agent. This is an output-only field populated by the system when the published context is updated. It is used to restore the agent to a previous state.",
          "readOnly": true,
          "$ref": "GoogleCloudGeminidataanalyticsV1Context"
        },
        "publishedContext": {
          "description": "Optional. The published context for the agent. This context is used by the Chat API in production.",
          "$ref": "GoogleCloudGeminidataanalyticsV1Context"
        },
        "stagingContext": {
          "$ref": "GoogleCloudGeminidataanalyticsV1Context",
          "description": "Optional. The staging context for the agent. This context is used to test and validate changes before publishing."
        }
      }
    },
    "A2aV1AgentProvider": {
      "properties": {
        "url": {
          "description": "The providers reference url Example: \"https://ai.google.dev\"",
          "type": "string"
        },
        "organization": {
          "description": "The providers organization name Example: \"Google\"",
          "type": "string"
        }
      },
      "type": "object",
      "id": "A2aV1AgentProvider",
      "description": "Represents information about the service provider of an agent."
    },
    "A2aV1FilePart": {
      "description": "FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.",
      "type": "object",
      "properties": {
        "fileWithBytes": {
          "type": "string",
          "format": "byte"
        },
        "fileWithUri": {
          "type": "string"
        },
        "mimeType": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "id": "A2aV1FilePart"
    },
    "GoogleCloudGeminidataanalyticsV1OAuthCredentialsSecretBased": {
      "properties": {
        "clientSecret": {
          "description": "Required. An OAuth client secret.",
          "type": "string"
        },
        "clientId": {
          "type": "string",
          "description": "Required. An OAuth client ID."
        }
      },
      "description": "The name of the secret containing the access token. Represents secret-based OAuth credentials.",
      "id": "GoogleCloudGeminidataanalyticsV1OAuthCredentialsSecretBased",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1SetAgentOpsObservabilityRequest": {
      "properties": {
        "bqaaEnabled": {
          "type": "boolean",
          "description": "Optional. Whether BigQuery Agent Analytics is enabled. Note: An explicit `update_mask` containing \"bqaa_enabled\" is required to modify this field. If `update_mask` is omitted, this field is ignored and an existing enabled setting cannot be disabled. This is a project-level setting and does not by itself enable trace logging for any individual agent. Per-agent trace logging is controlled by `DataAgent.bigquery_agent_analytics_enabled` together with `DataAgent.bigquery_agent_analytics_table`; an agent does not inherit this setting."
        },
        "telemetryEnabled": {
          "type": "boolean",
          "description": "Optional. Whether to enable or disable AgentOps observability. When update_mask is provided, this field is ignored unless specified in the mask."
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "Optional. Field mask is used to specify the fields to be overwritten by the update. The fields specified in the update_mask are relative to the resource. A field will be overwritten if it is in the mask. If the user does not provide a mask, only `telemetry_enabled` will be updated (for backward compatibility with legacy callers). Note that disabling BigQuery Agent Analytics (`bqaa_enabled = false`) requires providing an explicit `update_mask` containing \"bqaa_enabled\". Per AIP-161: - The special wildcard value '*' is supported to update all fields. - Field paths should use snake_case, though camelCase equivalents (`telemetryEnabled`, `bqaaEnabled`) are accepted for REST/JSON transcoding compatibility."
        },
        "dataSourceType": {
          "description": "Required. The data source type for which to set observability settings. Examples: \"bigquery\", \"looker\"",
          "type": "string"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1SetAgentOpsObservabilityRequest",
      "type": "object",
      "description": "Request for SetAgentOpsObservability."
    },
    "GoogleCloudGeminidataanalyticsV1LookerSettings": {
      "description": "Message to hold Looker specific custom settings.",
      "id": "GoogleCloudGeminidataanalyticsV1LookerSettings",
      "properties": {
        "enableDevMode": {
          "type": "boolean",
          "description": "Optional. Whether to operate in Looker's Development Mode. If true, the API session will be switched to the \"dev\" workspace, allowing interaction with LookML changes in the user's development branch. If false or unset, the session remains in the default state (Production Mode). See https://cloud.google.com/looker/docs/dev-mode-prod-mode."
        }
      },
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1GlossaryTerm": {
      "properties": {
        "displayName": {
          "description": "Required. User friendly display name of the glossary term being defined. For example: \"CTR\", \"conversion rate\", \"pending\" Must be at most 256 bytes.",
          "type": "string"
        },
        "description": {
          "description": "Required. The description or meaning of the term. For example: \"Click-through rate\", \"The percentage of users who complete a desired action\", \"An order that is waiting to be processed.\" Must be at most 5,000 bytes (approx. 5,000 characters).",
          "type": "string"
        },
        "labels": {
          "items": {
            "type": "string"
          },
          "description": "Optional. A list of general purpose labels associated to this term. For example: [\"click rate\", \"clickthrough\", \"waiting\"]",
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1GlossaryTerm",
      "description": "Definition of a term within a specific domain."
    },
    "GoogleIamV1Binding": {
      "id": "GoogleIamV1Binding",
      "properties": {
        "condition": {
          "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
          "$ref": "GoogleTypeExpr"
        },
        "members": {
          "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "role": {
          "type": "string",
          "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles)."
        }
      },
      "description": "Associates `members`, or principals, with a `role`.",
      "type": "object"
    },
    "A2aV1OpenIdConnectSecurityScheme": {
      "type": "object",
      "id": "A2aV1OpenIdConnectSecurityScheme",
      "properties": {
        "description": {
          "description": "Description of this security scheme.",
          "type": "string"
        },
        "openIdConnectUrl": {
          "type": "string",
          "description": "Well-known URL to discover the [[OpenID-Connect-Discovery]] provider metadata."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1SchemaMessage": {
      "properties": {
        "result": {
          "$ref": "GoogleCloudGeminidataanalyticsV1SchemaResult",
          "description": "The result of a schema resolution query."
        },
        "query": {
          "$ref": "GoogleCloudGeminidataanalyticsV1SchemaQuery",
          "description": "A schema resolution query."
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1SchemaMessage",
      "type": "object",
      "description": "A message produced during schema resolution."
    },
    "GoogleCloudGeminidataanalyticsV1BigQueryTableReference": {
      "properties": {
        "projectId": {
          "description": "Required. The project that the table belongs to.",
          "type": "string"
        },
        "schema": {
          "description": "Optional. The schema of the datasource.",
          "$ref": "GoogleCloudGeminidataanalyticsV1Schema"
        },
        "datasetId": {
          "description": "Required. The dataset that the table belongs to.",
          "type": "string"
        },
        "tableId": {
          "type": "string",
          "description": "Required. The table id."
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1BigQueryTableReference",
      "description": "Message representing a reference to a single BigQuery table.",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1QueryParameter": {
      "description": "A query parameter message represents a parameter that can be used to parameterize a SQL query.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Required. The name of the parameter reference in the SQL query.",
          "type": "string"
        },
        "dataType": {
          "description": "Required. The data type of the parameter, e.g. \"STRING\", \"INT64\", \"DATE\", etc. For valid values, see the [BigQuery documentation](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types). This will be used to populate google.cloud.bigquery.v2.QueryParameterType.type.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Optional. The description of the parameter that can be used by LLM to extract the parameter value from the user question."
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1QueryParameter"
    },
    "GoogleTypeExpr": {
      "properties": {
        "location": {
          "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
          "type": "string"
        },
        "expression": {
          "type": "string",
          "description": "Textual representation of an expression in Common Expression Language syntax."
        },
        "title": {
          "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
          "type": "string"
        }
      },
      "id": "GoogleTypeExpr",
      "type": "object",
      "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() \u003c 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information."
    },
    "GoogleCloudGeminidataanalyticsV1Blob": {
      "type": "object",
      "properties": {
        "mimeType": {
          "type": "string",
          "description": "Required. The IANA standard MIME type of the message data."
        },
        "data": {
          "description": "Required. The data represented as bytes.",
          "format": "byte",
          "type": "string"
        }
      },
      "description": "A blob of data with a MIME type.",
      "id": "GoogleCloudGeminidataanalyticsV1Blob"
    },
    "A2aV1TaskStatus": {
      "description": "A container for the status of a task",
      "properties": {
        "timestamp": {
          "description": "Timestamp when the status was recorded. Example: \"2023-10-27T10:00:00Z\"",
          "type": "string",
          "format": "google-datetime"
        },
        "message": {
          "description": "A message associated with the status.",
          "$ref": "A2aV1Message"
        },
        "state": {
          "description": "The current state of this task",
          "enum": [
            "TASK_STATE_UNSPECIFIED",
            "TASK_STATE_SUBMITTED",
            "TASK_STATE_WORKING",
            "TASK_STATE_COMPLETED",
            "TASK_STATE_FAILED",
            "TASK_STATE_CANCELLED",
            "TASK_STATE_INPUT_REQUIRED",
            "TASK_STATE_REJECTED",
            "TASK_STATE_AUTH_REQUIRED"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "Represents the status that acknowledges a task is created",
            "Represents the status that a task is actively being processed",
            "Represents the status a task is finished. This is a terminal state",
            "Represents the status a task is done but failed. This is a terminal state",
            "Represents the status a task was cancelled before it finished. This is a terminal state.",
            "Represents the status that the task requires information to complete. This is an interrupted state.",
            "Represents the status that the agent has decided to not perform the task. This may be done during initial task creation or later once an agent has determined it can't or won't proceed. This is a terminal state.",
            "Represents the state that some authentication is needed from the upstream client. Authentication is expected to come out-of-band thus this is not an interrupted or terminal state."
          ]
        }
      },
      "type": "object",
      "id": "A2aV1TaskStatus"
    },
    "GoogleCloudGeminidataanalyticsV1Citation": {
      "type": "object",
      "description": "Source attributions for content.",
      "properties": {
        "sources": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1CitationSource"
          },
          "description": "Output only. List of the sources being cited."
        },
        "anchors": {
          "description": "Output only. List of the anchors of the citations.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1CitationAnchor"
          }
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1Citation"
    },
    "GoogleCloudGeminidataanalyticsV1MatchedQuery": {
      "id": "GoogleCloudGeminidataanalyticsV1MatchedQuery",
      "type": "object",
      "properties": {
        "exampleQuery": {
          "$ref": "GoogleCloudGeminidataanalyticsV1ExampleQuery",
          "description": "The query that was matched based on an example query."
        },
        "queryParameterValues": {
          "type": "array",
          "description": "The extracted values for the query parameters.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1QueryParameterValues"
          }
        }
      },
      "description": "A matched query message represents the agent having matched one of the example queries supplied in context as being applicable to the current question. It will also contain additional info during the matching process."
    },
    "GoogleLongrunningCancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "id": "GoogleLongrunningCancelOperationRequest",
      "properties": {},
      "type": "object"
    },
    "A2aV1PushNotificationConfig": {
      "description": "Configuration for setting up push notifications for task updates.",
      "type": "object",
      "properties": {
        "token": {
          "description": "Token unique for this task/session",
          "type": "string"
        },
        "authentication": {
          "description": "Information about the authentication to sent with the notification",
          "$ref": "A2aV1AuthenticationInfo"
        },
        "id": {
          "type": "string",
          "description": "A unique identifier (e.g. UUID) for this push notification."
        },
        "url": {
          "description": "Url to send the notification too",
          "type": "string"
        }
      },
      "id": "A2aV1PushNotificationConfig"
    },
    "A2aV1HTTPAuthSecurityScheme": {
      "type": "object",
      "id": "A2aV1HTTPAuthSecurityScheme",
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of this security scheme."
        },
        "bearerFormat": {
          "type": "string",
          "description": "A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes."
        },
        "scheme": {
          "type": "string",
          "description": "The name of the HTTP Authentication scheme to be used in the Authorization header as defined in RFC7235. The values used SHOULD be registered in the IANA Authentication Scheme registry. The value is case-insensitive, as defined in RFC7235."
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1BigQueryTableReferences": {
      "type": "object",
      "properties": {
        "tableReferences": {
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryTableReference"
          },
          "description": "Optional. References to BigQuery tables.",
          "type": "array"
        },
        "propertyGraphReferences": {
          "type": "array",
          "description": "Optional. References to BigQuery graphs. Note: \"property graph\" is the former name for BigQuery Graph. The field and message names retain the original term for backward compatibility; both refer to the same resource.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryPropertyGraphReference"
          }
        }
      },
      "description": "Message representing references to BigQuery tables and property graphs. At least one of `table_references`, `property_graph_references`, or `search_scope` must be populated.",
      "id": "GoogleCloudGeminidataanalyticsV1BigQueryTableReferences"
    },
    "GoogleCloudGeminidataanalyticsV1UserMessage": {
      "type": "object",
      "description": "A message from the user that is interacting with the system.",
      "properties": {
        "text": {
          "description": "Text should use this field instead of blob.",
          "type": "string"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1UserMessage"
    },
    "GoogleCloudGeminidataanalyticsV1LookerExploreReference": {
      "id": "GoogleCloudGeminidataanalyticsV1LookerExploreReference",
      "description": "Message representing a reference to a single Looker explore.",
      "type": "object",
      "properties": {
        "lookerInstanceUri": {
          "type": "string",
          "description": "Required. The base url of the Looker instance."
        },
        "privateLookerInstanceInfo": {
          "description": "Private Looker instance info.",
          "$ref": "GoogleCloudGeminidataanalyticsV1PrivateLookerInstanceInfo"
        },
        "lookmlModel": {
          "type": "string",
          "description": "Required. Looker model, as outlined in [Major LookML structures](https://cloud.google.com/looker/docs/lookml-terms-and-concepts#major_lookml_structures). Name of the LookML model."
        },
        "schema": {
          "description": "Optional. The schema of the datasource.",
          "$ref": "GoogleCloudGeminidataanalyticsV1Schema"
        },
        "explore": {
          "type": "string",
          "description": "Required. Looker Explore, as outlined in [Major LookML structures](https://cloud.google.com/looker/docs/lookml-terms-and-concepts#major_lookml_structures). Name of the LookML Explore."
        }
      }
    },
    "GoogleIamV1GetPolicyOptions": {
      "id": "GoogleIamV1GetPolicyOptions",
      "properties": {
        "requestedPolicyVersion": {
          "format": "int32",
          "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
          "type": "integer"
        }
      },
      "description": "Encapsulates settings provided to GetIamPolicy.",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1QueryParameterValues": {
      "type": "object",
      "description": "A query parameter values message represents the values for the query parameters that were extracted from the user question by LLM, based on the example query.",
      "id": "GoogleCloudGeminidataanalyticsV1QueryParameterValues",
      "properties": {
        "name": {
          "description": "Required. The name of the parameter.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "Required. The value of the parameter."
        }
      }
    },
    "A2aV1OAuthFlows": {
      "properties": {
        "authorizationCode": {
          "$ref": "A2aV1AuthorizationCodeOAuthFlow"
        },
        "clientCredentials": {
          "$ref": "A2aV1ClientCredentialsOAuthFlow"
        },
        "implicit": {
          "$ref": "A2aV1ImplicitOAuthFlow"
        },
        "password": {
          "$ref": "A2aV1PasswordOAuthFlow"
        }
      },
      "id": "A2aV1OAuthFlows",
      "type": "object"
    },
    "A2aV1SecurityScheme": {
      "type": "object",
      "id": "A2aV1SecurityScheme",
      "properties": {
        "apiKeySecurityScheme": {
          "$ref": "A2aV1APIKeySecurityScheme"
        },
        "oauth2SecurityScheme": {
          "$ref": "A2aV1OAuth2SecurityScheme"
        },
        "httpAuthSecurityScheme": {
          "$ref": "A2aV1HTTPAuthSecurityScheme"
        },
        "mtlsSecurityScheme": {
          "$ref": "A2aV1MutualTlsSecurityScheme"
        },
        "openIdConnectSecurityScheme": {
          "$ref": "A2aV1OpenIdConnectSecurityScheme"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1BigQueryRoutine": {
      "description": "A reference to a BigQuery routine.",
      "id": "GoogleCloudGeminidataanalyticsV1BigQueryRoutine",
      "properties": {
        "routineReference": {
          "description": "The reference to the BigQuery routine.",
          "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryRoutineReference"
        },
        "description": {
          "description": "User override or addition to description, to tell the agent when to use the UDF.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "A2aV1SendMessageRequest": {
      "type": "object",
      "id": "A2aV1SendMessageRequest",
      "description": "/////////// Request Messages ///////////",
      "properties": {
        "configuration": {
          "$ref": "A2aV1SendMessageConfiguration",
          "description": "Configuration for the send request."
        },
        "message": {
          "description": "Required. The message to send to the agent.",
          "$ref": "A2aV1Message"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "Optional metadata for the request."
        }
      }
    },
    "A2aV1SendMessageConfiguration": {
      "id": "A2aV1SendMessageConfiguration",
      "type": "object",
      "properties": {
        "acceptedOutputModes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The output modes that the agent is expected to respond with."
        },
        "historyLength": {
          "description": "The maximum number of messages to include in the history. if 0, the history will be unlimited.",
          "type": "integer",
          "format": "int32"
        },
        "blocking": {
          "description": "If true, the message will be blocking until the task is completed. If false, the message will be non-blocking and the task will be returned immediately. It is the caller's responsibility to check for any task updates.",
          "type": "boolean"
        },
        "pushNotification": {
          "description": "A configuration of a webhook that can be used to receive updates",
          "$ref": "A2aV1PushNotificationConfig"
        }
      },
      "description": "Configuration of a send message request."
    },
    "GoogleCloudGeminidataanalyticsV1ListConversationsResponse": {
      "description": "Message for response to listing conversations.",
      "id": "GoogleCloudGeminidataanalyticsV1ListConversationsResponse",
      "type": "object",
      "properties": {
        "conversations": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1Conversation"
          },
          "description": "The list of conversations."
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        }
      }
    },
    "GoogleIamV1AuditConfig": {
      "id": "GoogleIamV1AuditConfig",
      "properties": {
        "service": {
          "type": "string",
          "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services."
        },
        "auditLogConfigs": {
          "items": {
            "$ref": "GoogleIamV1AuditLogConfig"
          },
          "description": "The configuration for logging of each type of permission.",
          "type": "array"
        }
      },
      "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.",
      "type": "object"
    },
    "GoogleCloudGeminidataanalyticsV1Conversation": {
      "properties": {
        "createTime": {
          "description": "Output only. Creation timestamp.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "lastUsedTime": {
          "type": "string",
          "description": "Output only. Timestamp of the last used conversation.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "agents": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required. Agent(s) in the conversation. Currently, only one agent is supported. This field is repeated to allow for future support of multiple agents in a conversation. Format: `projects/{project}/locations/{location}/dataAgents/{agent}`"
        },
        "kmsKey": {
          "description": "Optional. Customer managed encryption key (CMEK) to use for encrypting the Conversation resources. Encryption will happen at Titan layer, we will pass the KMS key to Titan. Format: projects/{project_id}/locations/{location}/keyRings/{key_ring_name}/cryptoKeys/{key_name}.",
          "type": "string"
        },
        "labels": {
          "type": "object",
          "description": "Optional. Open-ended and user-defined labels that can be set by the client to tag a conversation (e.g. to filter conversations for specific surfaces/products).",
          "additionalProperties": {
            "type": "string"
          }
        },
        "title": {
          "description": "Optional. The display name for the conversation (max 63 chars).",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Optional. Identifier. The unique resource name of a conversation. Format: `projects/{project}/locations/{location}/conversations/{conversation_id}` `{conversation_id}` is the resource id and should be 63 characters or less and must match the format described in https://google.aip.dev/122#resource-id-segments Example: `projects/1234567890/locations/global/conversations/my-conversation`. It is recommended to skip setting this field during conversation creation as it will be inferred automatically and overwritten with the {parent}/conversations/{conversation_id}."
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1Conversation",
      "description": "Message for a conversation."
    },
    "GoogleIamV1SetIamPolicyRequest": {
      "id": "GoogleIamV1SetIamPolicyRequest",
      "properties": {
        "updateMask": {
          "format": "google-fieldmask",
          "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`",
          "type": "string"
        },
        "policy": {
          "$ref": "GoogleIamV1Policy",
          "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them."
        }
      },
      "type": "object",
      "description": "Request message for `SetIamPolicy` method."
    },
    "GoogleCloudGeminidataanalyticsV1UserFunctions": {
      "properties": {
        "bqRoutines": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryRoutine"
          },
          "description": "A list of BigQuery routines to include in the context."
        }
      },
      "description": "A collection of user functions to be included in context.",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1UserFunctions"
    },
    "GoogleCloudGeminidataanalyticsV1AnalysisQuery": {
      "type": "object",
      "properties": {
        "dataResultNames": {
          "description": "Optional. The names of previously retrieved data results to analyze.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "question": {
          "type": "string",
          "description": "Optional. An analysis question to help answer the user's original question."
        }
      },
      "description": "A query for performing an analysis.",
      "id": "GoogleCloudGeminidataanalyticsV1AnalysisQuery"
    },
    "GoogleCloudGeminidataanalyticsV1ConversationOptions": {
      "description": "Options for the conversation.",
      "id": "GoogleCloudGeminidataanalyticsV1ConversationOptions",
      "properties": {
        "analysis": {
          "description": "Optional. Options for analysis.",
          "$ref": "GoogleCloudGeminidataanalyticsV1AnalysisOptions"
        },
        "datasource": {
          "description": "Optional. Options for datasources.",
          "$ref": "GoogleCloudGeminidataanalyticsV1DatasourceOptions"
        },
        "model": {
          "description": "Optional. The model to use for the agent loop.",
          "enum": [
            "MODEL_UNSPECIFIED",
            "LATEST_GA_MODEL"
          ],
          "type": "string",
          "enumDescriptions": [
            "No model specified. The model may be set on the chat request, or the default model will be used.",
            "Use the most up-to-date non-preview model. This may constrain certain request level settings."
          ]
        }
      },
      "type": "object"
    },
    "A2aV1Security": {
      "type": "object",
      "id": "A2aV1Security",
      "properties": {
        "schemes": {
          "additionalProperties": {
            "$ref": "A2aV1StringList"
          },
          "type": "object"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1ChatRequest": {
      "description": "Request for Chat.",
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1ChatRequest",
      "properties": {
        "model": {
          "type": "string",
          "enumDescriptions": [
            "No model specified. Either preview or non preview model can be used.",
            "Use the most up-to-date non-preview model. This may constrain certain request level settings."
          ],
          "enum": [
            "MODEL_UNSPECIFIED",
            "LATEST_GA_MODEL"
          ],
          "description": "Optional. The model to use for the agent loop when processing the request. This setting only has an effect when context.options.model is not set."
        },
        "inlineContext": {
          "description": "Optional. Inline context for the chat request. Use this to chat statelessly (without managed conversation persistence and without an Agent) by passing all context inline.",
          "$ref": "GoogleCloudGeminidataanalyticsV1Context"
        },
        "conversationReference": {
          "description": "Optional. Reference to a persisted conversation and agent context. Use this to chat with an Agent using managed conversation persistence.",
          "$ref": "GoogleCloudGeminidataanalyticsV1ConversationReference"
        },
        "dataAgentContext": {
          "description": "Optional. Context for the chat request. Use this to chat with an Agent statelessly, without managed conversation persistence.",
          "$ref": "GoogleCloudGeminidataanalyticsV1DataAgentContext"
        },
        "thinkingMode": {
          "description": "Optional. The thinking mode to use for the agent loop. Defaults to THINKING_MODE_UNSPECIFIED if not specified.",
          "type": "string",
          "enum": [
            "THINKING_MODE_UNSPECIFIED",
            "FAST",
            "THINKING"
          ],
          "enumDescriptions": [
            "Unspecified thinking mode, agent will use THINKING mode by default except for BigQuery user defaulting to FAST mode by default.",
            "Fast mode, answers quickly.",
            "Thinking mode, solves complex problems."
          ]
        },
        "credentials": {
          "description": "Optional. The credentials to use when calling the data source(s) specified in the context. This field can be used to provide credentials for various data sources. For example, when connecting to Looker, it currently supports both OAuth token and API key-based credentials, as described in [Authentication with an SDK](https://cloud.google.com/looker/docs/api-auth#authentication_with_an_sdk).",
          "$ref": "GoogleCloudGeminidataanalyticsV1Credentials"
        },
        "messages": {
          "type": "array",
          "description": "Required. Content of current conversation.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1Message"
          }
        },
        "clientManagedResourceContext": {
          "$ref": "GoogleCloudGeminidataanalyticsV1ClientManagedResourceContext",
          "description": "Optional. Context with client managed resources. Some clients may not use GDA managed resources including conversations and agents, instead they create and manage their own conversations and agents resources."
        },
        "lookerSettings": {
          "description": "Optional. Looker specific settings.",
          "$ref": "GoogleCloudGeminidataanalyticsV1LookerSettings"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1BigQueryJob": {
      "id": "GoogleCloudGeminidataanalyticsV1BigQueryJob",
      "properties": {
        "destinationTable": {
          "description": "Optional. A reference to the destination table of the job's query results. See [JobConfigurationQuery](https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobconfigurationquery).",
          "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryTableReference"
        },
        "projectId": {
          "description": "Required. The project that the job belongs to. See [JobReference](https://cloud.google.com/bigquery/docs/reference/rest/v2/JobReference).",
          "type": "string"
        },
        "location": {
          "description": "Optional. The location of the job. See [JobReference](https://cloud.google.com/bigquery/docs/reference/rest/v2/JobReference).",
          "type": "string"
        },
        "schema": {
          "$ref": "GoogleCloudGeminidataanalyticsV1Schema",
          "description": "Optional. The schema of the job's query results. See [JobStatistics2](https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobstatistics2)."
        },
        "jobId": {
          "description": "Required. The ID of the job. See [JobReference](https://cloud.google.com/bigquery/docs/reference/rest/v2/JobReference).",
          "type": "string"
        }
      },
      "type": "object",
      "description": "A BigQuery job executed by the system."
    },
    "GoogleCloudGeminidataanalyticsV1ListAccessibleDataAgentsResponse": {
      "properties": {
        "dataAgents": {
          "description": "The list of accessible DataAgent.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
          }
        },
        "nextPageToken": {
          "description": "The next page token or empty if none.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Locations that could not be reached."
        }
      },
      "type": "object",
      "description": "Message for response to listing accessible DataAgents.",
      "id": "GoogleCloudGeminidataanalyticsV1ListAccessibleDataAgentsResponse"
    },
    "A2aV1APIKeySecurityScheme": {
      "type": "object",
      "properties": {
        "location": {
          "description": "Location of the API key, valid values are \"query\", \"header\", or \"cookie\"",
          "type": "string"
        },
        "description": {
          "description": "Description of this security scheme.",
          "type": "string"
        },
        "name": {
          "description": "Name of the header, query or cookie parameter to be used.",
          "type": "string"
        }
      },
      "id": "A2aV1APIKeySecurityScheme"
    },
    "GoogleRpcStatus": {
      "type": "object",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "id": "GoogleRpcStatus",
      "properties": {
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          },
          "type": "array"
        },
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1DatasourceOptions": {
      "properties": {
        "bigQueryMaxBilledBytes": {
          "format": "int64",
          "description": "Optional. This option applies to datasources that require BigQuery queries only. Limits the bytes billed for each BQ query job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, no limit will be applied.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Options for datasources configurations.",
      "id": "GoogleCloudGeminidataanalyticsV1DatasourceOptions"
    },
    "A2aV1TaskArtifactUpdateEvent": {
      "description": "TaskArtifactUpdateEvent represents a task delta where an artifact has been generated.",
      "type": "object",
      "id": "A2aV1TaskArtifactUpdateEvent",
      "properties": {
        "contextId": {
          "description": "The id of the context that this task belongs too",
          "type": "string"
        },
        "lastChunk": {
          "description": "Whether this represents the last part of an artifact",
          "type": "boolean"
        },
        "artifact": {
          "description": "The artifact itself",
          "$ref": "A2aV1Artifact"
        },
        "taskId": {
          "type": "string",
          "description": "The id of the task for this artifact"
        },
        "append": {
          "type": "boolean",
          "description": "Whether this should be appended to a prior one produced"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "Optional metadata associated with the artifact update."
        }
      }
    },
    "A2aV1SendMessageResponse": {
      "description": "////// Response Messages ///////////",
      "id": "A2aV1SendMessageResponse",
      "type": "object",
      "properties": {
        "message": {
          "$ref": "A2aV1Message"
        },
        "task": {
          "$ref": "A2aV1Task"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1DatasourceReferences": {
      "description": "A collection of references to datasources.",
      "type": "object",
      "properties": {
        "bq": {
          "$ref": "GoogleCloudGeminidataanalyticsV1BigQueryTableReferences",
          "description": "References to BigQuery tables."
        },
        "studio": {
          "$ref": "GoogleCloudGeminidataanalyticsV1StudioDatasourceReferences",
          "description": "References to Looker Studio datasources."
        },
        "looker": {
          "description": "References to Looker Explores.",
          "$ref": "GoogleCloudGeminidataanalyticsV1LookerExploreReferences"
        }
      },
      "id": "GoogleCloudGeminidataanalyticsV1DatasourceReferences"
    },
    "GoogleCloudGeminidataanalyticsV1StudioDatasourceReferences": {
      "properties": {
        "studioReferences": {
          "description": "Optional. The references to the studio datasources.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1StudioDatasourceReference"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleCloudGeminidataanalyticsV1StudioDatasourceReferences",
      "description": "Message representing references to Looker Studio datasources."
    },
    "GoogleCloudGeminidataanalyticsV1TextMessage": {
      "id": "GoogleCloudGeminidataanalyticsV1TextMessage",
      "description": "A multi-part text message.",
      "type": "object",
      "properties": {
        "thoughtSignature": {
          "type": "string",
          "description": "Optional. An opaque signature for a thought so it can be reused in subsequent requests.",
          "format": "byte"
        },
        "parts": {
          "items": {
            "type": "string"
          },
          "description": "Optional. The parts of the message.",
          "type": "array"
        },
        "textType": {
          "enum": [
            "TEXT_TYPE_UNSPECIFIED",
            "FINAL_RESPONSE",
            "THOUGHT",
            "PROGRESS",
            "FOLLOWUP_QUESTIONS"
          ],
          "description": "Optional. The type of the text message.",
          "type": "string",
          "enumDescriptions": [
            "The default text type.",
            "The text is a final response to the user question.",
            "The text is a thought from the model.",
            "The text is an informational message about the agent's progress, such as a tool being invoked. This is distinct from the agent's internal thought process (`THOUGHT`) and the final answer to the user (`FINAL_RESPONSE`). These messages provide insight into the agent's actions.",
            "The text is a list of follow-up questions suggested. Each item in parts is a follow-up question."
          ]
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1Field": {
      "description": "A field in a schema.",
      "id": "GoogleCloudGeminidataanalyticsV1Field",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Optional. A brief description of the field."
        },
        "subfields": {
          "description": "Optional. Recursive property for nested schema structures.",
          "items": {
            "$ref": "GoogleCloudGeminidataanalyticsV1Field"
          },
          "type": "array"
        },
        "tags": {
          "description": "Optional. A list of tags or keywords associated with the field, used for categorization. For example: [\"identifier\", \"customer\", \"pii\"]. Currently only used for BigQuery data sources.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "type": "string",
          "description": "Optional. The name of the field."
        },
        "type": {
          "type": "string",
          "description": "Optional. The type of the field."
        },
        "synonyms": {
          "items": {
            "type": "string"
          },
          "description": "Optional. A list of alternative names or synonyms that can be used to refer to this field. For example: [\"id\", \"customerid\", \"cust_id\"]. Currently only used for BigQuery data sources.",
          "type": "array"
        },
        "valueFormat": {
          "description": "Optional. Looker only. Value format of the field. Ref: https://cloud.google.com/looker/docs/reference/param-field-value-format",
          "type": "string"
        },
        "category": {
          "type": "string",
          "description": "Optional. Field category, not required, currently only useful for Looker."
        },
        "mode": {
          "description": "Optional. The mode of the field (e.g., NULLABLE, REPEATED).",
          "type": "string"
        },
        "displayName": {
          "type": "string",
          "description": "Optional. Field display_name (same as label in"
        }
      }
    },
    "GoogleCloudGeminidataanalyticsV1DataAgentContext": {
      "id": "GoogleCloudGeminidataanalyticsV1DataAgentContext",
      "properties": {
        "contextVersion": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified or unrecognized.",
            "Using this version, DCS will use the latest staging context for the data agent.",
            "Using this version, DCS will use the latest published context for the data agent."
          ],
          "description": "Optional. Version of context to be used by DCS (e.g. STAGING, PUBLISHED)",
          "enum": [
            "CONTEXT_VERSION_UNSPECIFIED",
            "STAGING",
            "PUBLISHED"
          ]
        },
        "dataAgent": {
          "type": "string",
          "description": "Required. The name of the data agent resource."
        }
      },
      "description": "Context for the chat request using a data agent.",
      "type": "object"
    }
  },
  "ownerDomain": "google.com",
  "protocol": "rest",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "documentationLink": "https://cloud.google.com/gemini/docs/conversational-analytics-api/overview",
  "mtlsRootUrl": "https://geminidataanalytics.mtls.googleapis.com/",
  "version_module": true,
  "batchPath": "batch",
  "rootUrl": "https://geminidataanalytics.googleapis.com/",
  "title": "Data Analytics API with Gemini",
  "servicePath": "",
  "parameters": {
    "prettyPrint": {
      "default": "true",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "location": "query",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token."
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "location": "query",
      "description": "Data format for response.",
      "default": "json"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "upload_protocol": {
      "location": "query",
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format."
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "endpoints": [
    {
      "location": "us",
      "endpointUrl": "https://geminidataanalytics.us.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "eu",
      "endpointUrl": "https://geminidataanalytics.eu.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-west2",
      "endpointUrl": "https://geminidataanalytics.europe-west2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-west4",
      "endpointUrl": "https://geminidataanalytics.europe-west4.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://geminidataanalytics.us-south1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-south1"
    }
  ],
  "baseUrl": "https://geminidataanalytics.googleapis.com/",
  "basePath": "",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "canonicalName": "Data Analytics API with Gemini",
  "version": "v1",
  "id": "geminidataanalytics:v1",
  "kind": "discovery#restDescription",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "retrieveAgentOpsObservability": {
              "id": "geminidataanalytics.projects.locations.retrieveAgentOpsObservability",
              "parameters": {
                "dataSourceType": {
                  "type": "string",
                  "location": "query",
                  "description": "Required. The data source type for which to retrieve observability settings. Examples: \"bigquery\", \"looker\""
                },
                "parent": {
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "description": "Required. Parent value for RetrieveAgentOpsObservabilityRequest. Format: projects/{project}/locations/{location}",
                  "type": "string",
                  "required": true
                }
              },
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:retrieveAgentOpsObservability",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "GoogleCloudGeminidataanalyticsV1RetrieveAgentOpsObservabilityResponse"
              },
              "path": "v1/{+parent}:retrieveAgentOpsObservability",
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "GET",
              "description": "Gets AgentOps observability settings and status of required services."
            },
            "list": {
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page."
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "type": "integer",
                  "description": "The maximum number of results to return. If not set, the service selects a default."
                },
                "extraLocationTypes": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "repeated": true
                },
                "filter": {
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
                  "type": "string",
                  "location": "query"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}/locations",
              "httpMethod": "GET",
              "flatPath": "v1/projects/{projectsId}/locations",
              "id": "geminidataanalytics.projects.locations.list",
              "response": {
                "$ref": "GoogleCloudLocationListLocationsResponse"
              }
            },
            "get": {
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
              "description": "Gets information about a location.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "description": "Resource name for the location.",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "type": "string"
                }
              },
              "id": "geminidataanalytics.projects.locations.get",
              "response": {
                "$ref": "GoogleCloudLocationLocation"
              },
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "chat": {
              "path": "v1/{+parent}:chat",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleCloudGeminidataanalyticsV1ChatRequest"
              },
              "description": "Answers a data question by generating a stream of Message objects.",
              "parameterOrder": [
                "parent"
              ],
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:chat",
              "id": "geminidataanalytics.projects.locations.chat",
              "response": {
                "$ref": "GoogleCloudGeminidataanalyticsV1Message"
              },
              "parameters": {
                "parent": {
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "required": true,
                  "description": "Required. The parent value for chat request. Pattern: `projects/{project}/locations/{location}`",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          },
          "resources": {
            "observabilitySettings": {
              "methods": {
                "setAgentOpsObservability": {
                  "description": "Enables/Disables required GCP services and configures AgentOps observability settings calling the Admin Settings executable node to update the AgentOps Observability feature.",
                  "id": "geminidataanalytics.projects.locations.observabilitySettings.setAgentOpsObservability",
                  "request": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1SetAgentOpsObservabilityRequest"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1/{+parent}/observabilitySettings:setAgentOpsObservability",
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "description": "Required. Parent value for SetAgentOpsObservabilityRequest. Format: projects/{project}/locations/{location}",
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/observabilitySettings:setAgentOpsObservability",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  }
                }
              }
            },
            "operations": {
              "methods": {
                "cancel": {
                  "path": "v1/{+name}:cancel",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "response": {
                    "$ref": "Empty"
                  },
                  "request": {
                    "$ref": "GoogleLongrunningCancelOperationRequest"
                  },
                  "id": "geminidataanalytics.projects.locations.operations.cancel",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "description": "The name of the operation resource to be cancelled.",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`."
                },
                "get": {
                  "httpMethod": "GET",
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
                  "path": "v1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "description": "The name of the operation resource.",
                      "type": "string"
                    }
                  },
                  "id": "geminidataanalytics.projects.locations.operations.get"
                },
                "list": {
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "The name of the operation's parent resource.",
                      "type": "string"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "location": "query",
                      "format": "int32",
                      "type": "integer",
                      "description": "The standard list page size."
                    },
                    "returnPartialSuccess": {
                      "type": "boolean",
                      "location": "query",
                      "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation."
                    },
                    "filter": {
                      "location": "query",
                      "description": "The standard list filter.",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "id": "geminidataanalytics.projects.locations.operations.list",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleLongrunningListOperationsResponse"
                  },
                  "path": "v1/{+name}/operations",
                  "httpMethod": "GET",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations"
                },
                "delete": {
                  "response": {
                    "$ref": "Empty"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "geminidataanalytics.projects.locations.operations.delete",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "path": "v1/{+name}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "description": "The name of the operation resource to be deleted.",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "DELETE",
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`."
                }
              }
            },
            "dataAgents": {
              "methods": {
                "patch": {
                  "path": "v1/{+name}",
                  "description": "Updates the parameters of a single DataAgent.",
                  "httpMethod": "PATCH",
                  "id": "geminidataanalytics.projects.locations.dataAgents.patch",
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
                  },
                  "parameters": {
                    "updateMask": {
                      "format": "google-fieldmask",
                      "description": "Optional. Field mask is used to specify the fields to be overwritten in the DataAgent resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields with non-default values present in the request will be overwritten. If a wildcard mask is provided, all fields will be overwritten.",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$",
                      "location": "path",
                      "description": "Optional. Identifier. The unique resource name of a DataAgent. Format: `projects/{project}/locations/{location}/dataAgents/{data_agent_id}` `{data_agent}` is the resource id and should be 63 characters or less and must match the format described in https://google.aip.dev/122#resource-id-segments Example: `projects/1234567890/locations/global/dataAgents/my-agent`. It is recommended to skip setting this field during agent creation as it will be inferred automatically and overwritten with the {parent}/dataAgents/{data_agent_id}.",
                      "required": true
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ]
                },
                "setIamPolicy": {
                  "response": {
                    "$ref": "GoogleIamV1Policy"
                  },
                  "id": "geminidataanalytics.projects.locations.dataAgents.setIamPolicy",
                  "httpMethod": "POST",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}:setIamPolicy",
                  "request": {
                    "$ref": "GoogleIamV1SetIamPolicyRequest"
                  },
                  "description": "Sets the IAM policy for a DataAgent.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+resource}:setIamPolicy",
                  "parameters": {
                    "resource": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$",
                      "location": "path",
                      "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "resource"
                  ]
                },
                "createSync": {
                  "description": "Creates a new DataAgent in a given project and location synchronously.",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "dataAgentId": {
                      "type": "string",
                      "description": "Optional. Id of the requesting object. Must be unique within the parent. The allowed format is: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. If not provided, the server will auto-generate a value for the id.",
                      "location": "query"
                    },
                    "parent": {
                      "location": "path",
                      "description": "Required. Value for parent.",
                      "required": true,
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    }
                  },
                  "id": "geminidataanalytics.projects.locations.dataAgents.createSync",
                  "request": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
                  },
                  "httpMethod": "POST",
                  "path": "v1/{+parent}/dataAgents:createSync",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents:createSync"
                },
                "updateSync": {
                  "path": "v1/{+name}:updateSync",
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "description": "Optional. Identifier. The unique resource name of a DataAgent. Format: `projects/{project}/locations/{location}/dataAgents/{data_agent_id}` `{data_agent}` is the resource id and should be 63 characters or less and must match the format described in https://google.aip.dev/122#resource-id-segments Example: `projects/1234567890/locations/global/dataAgents/my-agent`. It is recommended to skip setting this field during agent creation as it will be inferred automatically and overwritten with the {parent}/dataAgents/{data_agent_id}.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$"
                    },
                    "updateMask": {
                      "description": "Optional. Field mask is used to specify the fields to be overwritten in the DataAgent resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields with non-default values present in the request will be overwritten. If a wildcard mask is provided, all fields will be overwritten.",
                      "type": "string",
                      "format": "google-fieldmask",
                      "location": "query"
                    },
                    "requestId": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                    }
                  },
                  "request": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
                  },
                  "description": "Updates the parameters of a single DataAgent synchronously.",
                  "id": "geminidataanalytics.projects.locations.dataAgents.updateSync",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}:updateSync",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "PATCH",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
                  }
                },
                "getIamPolicy": {
                  "response": {
                    "$ref": "GoogleIamV1Policy"
                  },
                  "parameters": {
                    "resource": {
                      "type": "string",
                      "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$"
                    }
                  },
                  "request": {
                    "$ref": "GoogleIamV1GetIamPolicyRequest"
                  },
                  "id": "geminidataanalytics.projects.locations.dataAgents.getIamPolicy",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}:getIamPolicy",
                  "path": "v1/{+resource}:getIamPolicy",
                  "parameterOrder": [
                    "resource"
                  ],
                  "description": "Gets the IAM policy for DataAgent",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "POST"
                },
                "deleteSync": {
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "geminidataanalytics.projects.locations.dataAgents.deleteSync",
                  "httpMethod": "DELETE",
                  "description": "Deletes a single DataAgent synchronously.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$",
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "type": "string",
                      "required": true
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}:deleteSync",
                  "path": "v1/{+name}:deleteSync"
                },
                "listAccessible": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents:listAccessible",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1ListAccessibleDataAgentsResponse"
                  },
                  "id": "geminidataanalytics.projects.locations.dataAgents.listAccessible",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists DataAgents that are accessible to the caller in a given project and location.",
                  "path": "v1/{+parent}/dataAgents:listAccessible",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "orderBy": {
                      "location": "query",
                      "description": "Optional. User specification for how to order the results.",
                      "type": "string"
                    },
                    "showDeleted": {
                      "description": "Optional. If true, the list results will include soft-deleted DataAgents. Defaults to false.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "filter": {
                      "description": "Optional. Filtering results. See [AIP-160](https://google.aip.dev/160) for syntax.",
                      "type": "string",
                      "location": "query"
                    },
                    "pageSize": {
                      "type": "integer",
                      "format": "int32",
                      "location": "query",
                      "description": "Optional. Server may return fewer items than requested. If unspecified, server will pick an appropriate default."
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "Optional. A page token, received from a previous `ListAccessibleDataAgents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccessibleDataAgents` must match the call that provided the page token. The service may return fewer than this value.",
                      "type": "string"
                    },
                    "parent": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "required": true,
                      "description": "Required. Parent value for ListAccessibleDataAgentsRequest."
                    },
                    "creatorFilter": {
                      "enum": [
                        "CREATOR_FILTER_UNSPECIFIED",
                        "NONE",
                        "CREATOR_ONLY",
                        "NOT_CREATOR_ONLY"
                      ],
                      "location": "query",
                      "description": "Optional. Filter for the creator of the agent.",
                      "enumDescriptions": [
                        "Default value.",
                        "No creator-specific filter will be applied. All agents will be returned.",
                        "Only agents created by the user calling the API will be returned.",
                        "Only agents not created by the user calling the API will be returned."
                      ],
                      "type": "string"
                    }
                  }
                },
                "delete": {
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$",
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "required": true
                    },
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "description": "Deletes a single DataAgent.",
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}",
                  "id": "geminidataanalytics.projects.locations.dataAgents.delete",
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "httpMethod": "DELETE",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. A page token, received from a previous `ListDataAgents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDataAgents` must match the call that provided the page token. The service may return fewer than this value."
                    },
                    "pageSize": {
                      "location": "query",
                      "description": "Optional. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "showDeleted": {
                      "location": "query",
                      "description": "Optional. If true, the list results will include soft-deleted DataAgents. Defaults to false.",
                      "type": "boolean"
                    },
                    "parent": {
                      "type": "string",
                      "description": "Required. Parent value for ListDataAgentsRequest.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path"
                    },
                    "creatorFilter": {
                      "type": "string",
                      "description": "Optional. Filter for the creator of the agent.",
                      "enumDescriptions": [
                        "Default value.",
                        "No creator-specific filter will be applied. All agents will be returned.",
                        "Only agents created by the user calling the API will be returned.",
                        "Only agents not created by the user calling the API will be returned."
                      ],
                      "location": "query",
                      "enum": [
                        "CREATOR_FILTER_UNSPECIFIED",
                        "NONE",
                        "CREATOR_ONLY",
                        "NOT_CREATOR_ONLY"
                      ]
                    },
                    "orderBy": {
                      "description": "Optional. User specification for how to order the results.",
                      "type": "string",
                      "location": "query"
                    },
                    "filter": {
                      "type": "string",
                      "description": "Optional. Filtering results. See [AIP-160](https://google.aip.dev/160) for syntax.",
                      "location": "query"
                    }
                  },
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1ListDataAgentsResponse"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "description": "Lists DataAgents in a given project and location.",
                  "httpMethod": "GET",
                  "path": "v1/{+parent}/dataAgents",
                  "id": "geminidataanalytics.projects.locations.dataAgents.list"
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "POST",
                  "id": "geminidataanalytics.projects.locations.dataAgents.create",
                  "path": "v1/{+parent}/dataAgents",
                  "description": "Creates a new DataAgent in a given project and location.",
                  "parameterOrder": [
                    "parent"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents",
                  "request": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
                  },
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "parameters": {
                    "parent": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. Value for parent."
                    },
                    "dataAgentId": {
                      "location": "query",
                      "description": "Optional. Id of the requesting object. Must be unique within the parent. The allowed format is: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. If not provided, the server will auto-generate a value for the id.",
                      "type": "string"
                    },
                    "requestId": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                    }
                  }
                },
                "get": {
                  "id": "geminidataanalytics.projects.locations.dataAgents.get",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}",
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1DataAgent"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$",
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "type": "string",
                      "required": true
                    }
                  },
                  "path": "v1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "description": "Gets details of a single DataAgent."
                }
              }
            },
            "conversations": {
              "methods": {
                "get": {
                  "httpMethod": "GET",
                  "description": "Gets details of a single conversation by using conversation id and parent.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}",
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1Conversation"
                  },
                  "path": "v1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "geminidataanalytics.projects.locations.conversations.get",
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "description": "Required. Name of the resource. Format: `projects/{project}/locations/{location}/conversations/{conversation}`",
                      "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$"
                    }
                  }
                },
                "patch": {
                  "id": "geminidataanalytics.projects.locations.conversations.patch",
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1Conversation"
                  },
                  "request": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1Conversation"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}",
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Updates a conversation.",
                  "httpMethod": "PATCH",
                  "parameters": {
                    "updateMask": {
                      "type": "string",
                      "format": "google-fieldmask",
                      "location": "query",
                      "description": "Optional. Field mask is used to specify the fields to be overwritten in the Conversation resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields with non-default values present in the request will be overwritten. If a wildcard mask is provided, all fields will be overwritten."
                    },
                    "name": {
                      "description": "Optional. Identifier. The unique resource name of a conversation. Format: `projects/{project}/locations/{location}/conversations/{conversation_id}` `{conversation_id}` is the resource id and should be 63 characters or less and must match the format described in https://google.aip.dev/122#resource-id-segments Example: `projects/1234567890/locations/global/conversations/my-conversation`. It is recommended to skip setting this field during conversation creation as it will be inferred automatically and overwritten with the {parent}/conversations/{conversation_id}.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "requestId": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request."
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}"
                },
                "delete": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}",
                  "httpMethod": "DELETE",
                  "description": "Deletes a conversation.",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}",
                  "id": "geminidataanalytics.projects.locations.conversations.delete",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$",
                      "location": "path",
                      "description": "Required. Name of the resource. Format: `projects/{project}/locations/{location}/conversations/{conversation}`",
                      "required": true,
                      "type": "string"
                    }
                  }
                },
                "list": {
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1ListConversationsResponse"
                  },
                  "httpMethod": "GET",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations",
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "geminidataanalytics.projects.locations.conversations.list",
                  "path": "v1/{+parent}/conversations",
                  "description": "Lists all conversations for a given parent.",
                  "parameters": {
                    "filter": {
                      "description": "Optional. Returned conversations will match criteria specified within the filter. ListConversations allows filtering by: * agents * labels",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "description": "Required. Parent value for ListConversationsRequest. Format: `projects/{project}/locations/{location}`",
                      "required": true
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "Optional. A token identifying a page of results the server should return.",
                      "location": "query"
                    },
                    "pageSize": {
                      "location": "query",
                      "type": "integer",
                      "format": "int32",
                      "description": "Optional. Requested page size. Server may return fewer items than requested. The max page size is `100`. All larger page sizes will be coerced to `100`. If unspecified, server will pick `50` as an appropriate default."
                    }
                  }
                },
                "create": {
                  "request": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1Conversation"
                  },
                  "httpMethod": "POST",
                  "description": "Creates a new conversation to persist the conversation history. Each conversation will have multiple messages associated with it.",
                  "response": {
                    "$ref": "GoogleCloudGeminidataanalyticsV1Conversation"
                  },
                  "id": "geminidataanalytics.projects.locations.conversations.create",
                  "path": "v1/{+parent}/conversations",
                  "parameters": {
                    "parent": {
                      "type": "string",
                      "description": "Required. Parent value for CreateConversationRequest. Format: `projects/{project}/locations/{location}`",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true
                    },
                    "conversationId": {
                      "type": "string",
                      "description": "Optional. The conversation id of the conversation to create. Must be unique within the parent. The allowed format is: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. If not provided, the server will auto-generate a value for the id.",
                      "location": "query"
                    },
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              },
              "resources": {
                "messages": {
                  "methods": {
                    "list": {
                      "parameterOrder": [
                        "parent"
                      ],
                      "description": "Lists all messages for a given conversation.",
                      "parameters": {
                        "filter": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. Filtering results. See [AIP-160](https://google.aip.dev/160) for syntax. ListMessages allows filtering by: * create_time (e.g., `createTime \u003e \"2025-01-28T06:51:56-08:00\"`) * update_time"
                        },
                        "pageSize": {
                          "type": "integer",
                          "description": "Optional. Requested page size. Server may return fewer items than requested. The max page size is `100`. All larger page sizes will be coerced to `100`. If unspecified, server will pick `50` as an appropriate default.",
                          "format": "int32",
                          "location": "query"
                        },
                        "parent": {
                          "required": true,
                          "description": "Required. The conversation to list messages under. Format: `projects/{project}/locations/{location}/conversations/{conversation_id}`",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$",
                          "type": "string"
                        },
                        "pageToken": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. A token identifying a page of results the server should return."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "geminidataanalytics.projects.locations.conversations.messages.list",
                      "response": {
                        "$ref": "GoogleCloudGeminidataanalyticsV1ListMessagesResponse"
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/messages",
                      "path": "v1/{+parent}/messages",
                      "httpMethod": "GET"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "a2a": {
      "resources": {
        "projects": {
          "resources": {
            "locations": {
              "resources": {
                "agents": {
                  "resources": {
                    "v1": {
                      "methods": {
                        "getCard": {
                          "httpMethod": "GET",
                          "path": "v1/a2a/{+tenant}/v1/card",
                          "id": "geminidataanalytics.a2a.projects.locations.agents.v1.getCard",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/a2a/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/v1/card",
                          "description": "GetAgentCard returns the agent card for the agent.",
                          "parameterOrder": [
                            "tenant"
                          ],
                          "parameters": {
                            "tenant": {
                              "location": "path",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$",
                              "description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release."
                            }
                          },
                          "response": {
                            "$ref": "A2aV1AgentCard"
                          }
                        }
                      },
                      "resources": {
                        "message": {
                          "methods": {
                            "send": {
                              "request": {
                                "$ref": "A2aV1SendMessageRequest"
                              },
                              "parameterOrder": [
                                "tenant"
                              ],
                              "httpMethod": "POST",
                              "response": {
                                "$ref": "A2aV1SendMessageResponse"
                              },
                              "description": "Send a message to the agent. This is a blocking call that will return the task once it is completed, or a LRO if requested.",
                              "flatPath": "v1/a2a/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/v1/message:send",
                              "path": "v1/a2a/{+tenant}/v1/message:send",
                              "parameters": {
                                "tenant": {
                                  "type": "string",
                                  "description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
                                  "required": true,
                                  "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$",
                                  "location": "path"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "id": "geminidataanalytics.a2a.projects.locations.agents.v1.message.send"
                            },
                            "stream": {
                              "httpMethod": "POST",
                              "description": "SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.",
                              "response": {
                                "$ref": "A2aV1StreamResponse"
                              },
                              "path": "v1/a2a/{+tenant}/v1/message:stream",
                              "parameterOrder": [
                                "tenant"
                              ],
                              "request": {
                                "$ref": "A2aV1SendMessageRequest"
                              },
                              "flatPath": "v1/a2a/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/v1/message:stream",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "tenant": {
                                  "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$",
                                  "description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
                                  "type": "string",
                                  "location": "path",
                                  "required": true
                                }
                              },
                              "id": "geminidataanalytics.a2a.projects.locations.agents.v1.message.stream"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "dataAgents": {
                  "resources": {
                    "v1": {
                      "resources": {
                        "message": {
                          "methods": {
                            "send": {
                              "httpMethod": "POST",
                              "request": {
                                "$ref": "A2aV1SendMessageRequest"
                              },
                              "description": "Send a message to the agent. This is a blocking call that will return the task once it is completed, or a LRO if requested.",
                              "parameterOrder": [
                                "tenant"
                              ],
                              "path": "v1/a2a/{+tenant}/v1/message:send",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "id": "geminidataanalytics.a2a.projects.locations.dataAgents.v1.message.send",
                              "response": {
                                "$ref": "A2aV1SendMessageResponse"
                              },
                              "parameters": {
                                "tenant": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$",
                                  "required": true,
                                  "description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
                                  "type": "string"
                                }
                              },
                              "flatPath": "v1/a2a/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}/v1/message:send"
                            },
                            "stream": {
                              "description": "SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.",
                              "parameters": {
                                "tenant": {
                                  "description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
                                  "required": true,
                                  "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$",
                                  "location": "path",
                                  "type": "string"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameterOrder": [
                                "tenant"
                              ],
                              "request": {
                                "$ref": "A2aV1SendMessageRequest"
                              },
                              "flatPath": "v1/a2a/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}/v1/message:stream",
                              "id": "geminidataanalytics.a2a.projects.locations.dataAgents.v1.message.stream",
                              "httpMethod": "POST",
                              "response": {
                                "$ref": "A2aV1StreamResponse"
                              },
                              "path": "v1/a2a/{+tenant}/v1/message:stream"
                            }
                          }
                        }
                      },
                      "methods": {
                        "getCard": {
                          "path": "v1/a2a/{+tenant}/v1/card",
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "A2aV1AgentCard"
                          },
                          "parameters": {
                            "tenant": {
                              "description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
                              "location": "path",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/dataAgents/[^/]+$"
                            }
                          },
                          "id": "geminidataanalytics.a2a.projects.locations.dataAgents.v1.getCard",
                          "parameterOrder": [
                            "tenant"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "GetAgentCard returns the agent card for the agent.",
                          "flatPath": "v1/a2a/projects/{projectsId}/locations/{locationsId}/dataAgents/{dataAgentsId}/v1/card"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "fullyEncodeReservedExpansion": true
}
