---
title: "POST /v1/{+parent}/versions"
method: POST
path: "/v1/{+parent}/versions"
tags: ["projects"]
---

# POST /v1/{+parent}/versions

`POST /v1/{+parent}/versions`

Creates a new app version in the given app.

## Path parameters

- `parent` string, required

## Query parameters

- `appVersionId` string

## Request body

- AppVersion — In Customer Engagement Suite (CES), an app version is a snapshot of the app at a specific point in time. It is immutable and cannot be modified once created.
  - `name` string — Identifier. The unique identifier of the app version. Format: `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
  - `creator` string — Output only. Email of the user who created the app version.
  - `etag` string — Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
  - `displayName` string — Optional. The display name of the app version.
  - `description` string — Optional. The description of the app version.
  - `createTime` string, google-datetime — Output only. Timestamp when the app version was created.
  - `snapshot` AppSnapshot — A snapshot of the app.
    - `guardrails` Guardrail[] — Optional. List of guardrails in the app.
      - `codeCallback` GuardrailCodeCallback — Guardrail that blocks the conversation based on the code callbacks provided.
        - `beforeAgentCallback` Callback — A callback defines the custom logic to be executed at various stages of agent interaction.
          - `pythonCode` string — Required. The python code to execute for the callback.
          - `description` string — Optional. Human-readable description of the callback.
          - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
          - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
        - `afterAgentCallback` Callback — A callback defines the custom logic to be executed at various stages of agent interaction.
          - `pythonCode` string — Required. The python code to execute for the callback.
          - `description` string — Optional. Human-readable description of the callback.
          - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
          - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
        - `beforeModelCallback` Callback — A callback defines the custom logic to be executed at various stages of agent interaction.
          - `pythonCode` string — Required. The python code to execute for the callback.
          - `description` string — Optional. Human-readable description of the callback.
          - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
          - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
        - `afterModelCallback` Callback — A callback defines the custom logic to be executed at various stages of agent interaction.
          - `pythonCode` string — Required. The python code to execute for the callback.
          - `description` string — Optional. Human-readable description of the callback.
          - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
          - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
      - `etag` string — Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
      - `enabled` boolean — Optional. Whether the guardrail is enabled.
      - `action` TriggerAction — Action that is taken when a certain precondition is met.
        - `respondImmediately` TriggerActionRespondImmediately — The agent will immediately respond with a preconfigured response.
          - `responses` TriggerActionResponse[] — Required. The canned responses for the agent to choose from. The response is chosen randomly.
            - `disabled` boolean — Optional. Whether the response is disabled. Disabled responses are not used by the agent.
            - `text` string — Required. Text for the agent to respond with.
        - `transferAgent` TriggerActionTransferAgent — The agent will transfer the conversation to a different agent.
          - `agent` string — Required. The name of the agent to transfer the conversation to. The agent must be in the same app as the current agent. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
        - `generativeAnswer` TriggerActionGenerativeAnswer — The agent will immediately respond with a generative answer.
          - `prompt` string — Required. The prompt to use for the generative answer.
      - `modelSafety` GuardrailModelSafety — Model safety settings overrides. When this is set, it will override the default settings and trigger the guardrail if the response is considered unsafe.
        - `safetySettings` GuardrailModelSafetySafetySetting[] — Required. List of safety settings.
          - `category` 'HARM_CATEGORY_UNSPECIFIED' | 'HARM_CATEGORY_HATE_SPEECH' | 'HARM_CATEGORY_DANGEROUS_CONTENT' | 'HARM_CATEGORY_HARASSMENT' | 'HARM_CATEGORY_SEXUALLY_EXPLICIT' — Required. The harm category.
          - `threshold` 'HARM_BLOCK_THRESHOLD_UNSPECIFIED' | 'BLOCK_LOW_AND_ABOVE' | 'BLOCK_MEDIUM_AND_ABOVE' | 'BLOCK_ONLY_HIGH' | 'BLOCK_NONE' | 'OFF' — Required. The harm block threshold.
      - `displayName` string — Required. Display name of the guardrail.
      - `contentFilter` GuardrailContentFilter — Guardrail that bans certain content from being used in the conversation.
        - `matchType` 'MATCH_TYPE_UNSPECIFIED' | 'SIMPLE_STRING_MATCH' | 'WORD_BOUNDARY_STRING_MATCH' | 'REGEXP_MATCH' — Required. Match type for the content filter.
        - `bannedContentsInUserInput` string[] — Optional. List of banned phrases. Applies only to user inputs.
        - `bannedContents` string[] — Optional. List of banned phrases. Applies to both user inputs and agent responses.
        - `bannedContentsInAgentResponse` string[] — Optional. List of banned phrases. Applies only to agent responses.
        - `disregardDiacritics` boolean — Optional. If true, diacritics are ignored during matching.
      - `llmPolicy` GuardrailLlmPolicy — Guardrail that blocks the conversation if the LLM response is considered violating the policy based on the LLM classification.
        - `maxConversationMessages` integer — Optional. When checking this policy, consider the last 'n' messages in the conversation. When not set a default value of 10 will be used.
        - `modelSettings` ModelSettings — Model settings contains various configurations for the LLM model.
          - `temperature` number, double — Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative.
          - `model` string — Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
        - `allowShortUtterance` boolean — Optional. By default, the LLM policy check is bypassed for short utterances. Enabling this setting applies the policy check to all utterances, including those that would normally be skipped.
        - `prompt` string — Required. Policy prompt.
        - `policyScope` 'POLICY_SCOPE_UNSPECIFIED' | 'USER_QUERY' | 'AGENT_RESPONSE' | 'USER_QUERY_AND_AGENT_RESPONSE' — Required. Defines when to apply the policy check during the conversation. If set to `POLICY_SCOPE_UNSPECIFIED`, the policy will be applied to the user input. When applying the policy to the agent response, additional latency will be introduced before the agent can respond.
        - `failOpen` boolean — Optional. If an error occurs during the policy check, fail open and do not trigger the guardrail.
      - `llmPromptSecurity` GuardrailLlmPromptSecurity — Guardrail that blocks the conversation if the input is considered unsafe based on the LLM classification.
        - `defaultSettings` GuardrailLlmPromptSecurityDefaultSecuritySettings — Configuration for default system security settings.
          - `defaultPromptTemplate` string — Output only. The default prompt template used by the system. This field is for display purposes to show the user what prompt the system uses by default. It is OUTPUT_ONLY.
        - `customPolicy` GuardrailLlmPolicy — Guardrail that blocks the conversation if the LLM response is considered violating the policy based on the LLM classification.
          - `maxConversationMessages` integer — Optional. When checking this policy, consider the last 'n' messages in the conversation. When not set a default value of 10 will be used.
          - `modelSettings` ModelSettings — Model settings contains various configurations for the LLM model.
            - `temperature` number, double — Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative.
            - `model` string — Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
          - `allowShortUtterance` boolean — Optional. By default, the LLM policy check is bypassed for short utterances. Enabling this setting applies the policy check to all utterances, including those that would normally be skipped.
          - `prompt` string — Required. Policy prompt.
          - `policyScope` 'POLICY_SCOPE_UNSPECIFIED' | 'USER_QUERY' | 'AGENT_RESPONSE' | 'USER_QUERY_AND_AGENT_RESPONSE' — Required. Defines when to apply the policy check during the conversation. If set to `POLICY_SCOPE_UNSPECIFIED`, the policy will be applied to the user input. When applying the policy to the agent response, additional latency will be introduced before the agent can respond.
          - `failOpen` boolean — Optional. If an error occurs during the policy check, fail open and do not trigger the guardrail.
        - `failOpen` boolean — Optional. Determines the behavior when the guardrail encounters an LLM error. - If true: the guardrail is bypassed. - If false (default): the guardrail triggers/blocks. Note: If a custom policy is provided, this field is ignored in favor of the policy's 'fail_open' configuration.
      - `description` string — Optional. Description of the guardrail.
      - `updateTime` string, google-datetime — Output only. Timestamp when the guardrail was last updated.
      - `createTime` string, google-datetime — Output only. Timestamp when the guardrail was created.
      - `name` string — Identifier. The unique identifier of the guardrail. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
    - `tools` Tool[] — Optional. List of tools in the app.
      - `remoteAgentTool` RemoteAgentTool — Represents a tool that allows the agent to call another remote agent.
        - `agentCard` AgentCard — AgentCard conveys key information about a remote agent. It is a trimmed version of the AgentCard defined in the A2A protocol https://a2a-protocol.org/dev/specification/#441-agentcard
          - `version` string — Required. The version of the agent.
          - `name` string — Required. A human-readable name for the agent.
          - `skills` AgentSkill[] — Required. 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.
            - `inputModes` string[] — The set of supported input media types for this skill, overriding the agent's defaults.
            - `tags` string[] — Required. A set of keywords describing the skill's capabilities.
            - `outputModes` string[] — The set of supported output media types for this skill, overriding the agent's defaults.
            - `name` string — Required. A human-readable name for the skill.
            - `examples` string[] — Example prompts or scenarios that this skill can handle.
            - `id` string — Required. A unique identifier for the agent's skill.
            - `description` string — Required. A detailed description of the skill.
          - `supportedInterfaces` AgentInterface[] — Required. Ordered list of supported interfaces. The first entry is preferred.
            - `url` string — Required. The URL where this interface is available. Must be a valid absolute HTTPS URL in production. Example: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a"
            - `protocolBinding` string — Required. The protocol binding supported at this URL. This is an open form string, to be easily extended for other protocol bindings. The core ones officially supported are `JSONRPC`, `GRPC` and `HTTP+JSON`.
            - `tenant` string — Tenant ID to be used in the request when calling the agent.
            - `protocolVersion` string — Required. The version of the A2A protocol this interface exposes. Use the latest supported minor version per major version. Examples: "0.3", "1.0"
          - `description` string — Required. A description of the agent's domain of action/solution space.
        - `name` string — Required. The name of the tool.
        - `description` string — Required. The description of the tool.
      - `name` string — Identifier. The resource name of the tool. Format: * `projects/{project}/locations/{location}/apps/{app}/tools/{tool}` for standalone tools. * `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}/tools/{tool}` for tools retrieved from a toolset. These tools are dynamic and output-only; they cannot be referenced directly where a tool is expected.
      - `toolFakeConfig` ToolFakeConfig — Configuration for tool behavior in fake mode.
        - `codeBlock` CodeBlock — A code block to be executed instead of a real tool call.
          - `pythonCode` string — Required. Python code which will be invoked in tool fake mode. Expected Python function signature - To catch all tool calls: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: To catch a specific tool call: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: If the function returns None, the real tool will be invoked instead.
        - `enableFakeMode` boolean — Optional. Whether the tool is using fake mode.
      - `updateTime` string, google-datetime — Output only. Timestamp when the tool was last updated.
      - `createTime` string, google-datetime — Output only. Timestamp when the tool was created.
      - `openApiTool` OpenApiTool — A remote API tool defined by an OpenAPI schema.
        - `ignoreUnknownFields` boolean — Optional. If true, the agent will ignore unknown fields in the API response.
        - `url` string — Optional. The server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.
        - `name` string — Optional. The name of the tool. If not provided, the name of the tool will be derived from the OpenAPI schema, from `operation.operationId`.
        - `serviceDirectoryConfig` ServiceDirectoryConfig — Configuration for tools using Service Directory.
          - `service` string — Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
        - `tlsConfig` TlsConfig — The TLS configuration.
          - `caCerts` TlsConfigCaCert[] — Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
            - `displayName` string — Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
            - `cert` string, byte — Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
        - `openApiSchema` string — Required. The OpenAPI schema in JSON or YAML format.
        - `description` string — Optional. The description of the tool. If not provided, the description of the tool will be derived from the OpenAPI schema, from `operation.description` or `operation.summary`.
        - `apiAuthentication` ApiAuthentication — Authentication information required for API calls.
          - `oauthConfig` OAuthConfig — Configurations for authentication with OAuth.
            - `clientId` string — Required. The client ID from the OAuth provider.
            - `clientSecretVersion` string — Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `oauthGrantType` 'OAUTH_GRANT_TYPE_UNSPECIFIED' | 'CLIENT_CREDENTIAL' — Required. OAuth grant types.
            - `scopes` string[] — Optional. The OAuth scopes to grant.
            - `tokenEndpoint` string — Required. The token endpoint in the OAuth provider to exchange for an access token.
          - `serviceAccountAuthConfig` ServiceAccountAuthConfig — Configurations for authentication using a custom service account.
            - `serviceAccount` string — Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `scopes` string[] — Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
          - `apiKeyConfig` ApiKeyConfig — Configurations for authentication with API key.
            - `keyName` string — Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
            - `requestLocation` 'REQUEST_LOCATION_UNSPECIFIED' | 'HEADER' | 'QUERY_STRING' — Required. Key location in the request.
            - `apiKeySecretVersion` string — Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
          - `serviceAgentIdTokenAuthConfig` ServiceAgentIdTokenAuthConfig — Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent.
          - `bearerTokenConfig` BearerTokenConfig — Configurations for authentication with a bearer token.
            - `token` string — Required. The bearer token. Must be in the format `$context.variables.`.
      - `executionType` 'EXECUTION_TYPE_UNSPECIFIED' | 'SYNCHRONOUS' | 'ASYNCHRONOUS' — Optional. The execution type of the tool.
      - `connectorTool` ConnectorTool — A ConnectorTool allows connections to different integrations. See: https://cloud.google.com/integration-connectors/docs/overview.
        - `action` Action — Configuration of an Action for the tool to use. Note: This can be either an Action or an Operation. See https://cloud.google.com/integration-connectors/docs/entities-operation-action for details.
          - `connectionActionId` string — ID of a Connection action for the tool to use.
          - `inputFields` string[] — Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
          - `entityOperation` ActionEntityOperation — Entity CRUD operation specification.
            - `entityId` string — Required. ID of the entity.
            - `operation` 'OPERATION_TYPE_UNSPECIFIED' | 'LIST' | 'GET' | 'CREATE' | 'UPDATE' | 'DELETE' — Required. Operation to perform on the entity.
          - `outputFields` string[] — Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
        - `connection` string — Required. The full resource name of the referenced Integration Connectors Connection. Format: `projects/{project}/locations/{location}/connections/{connection}`
        - `description` string — Optional. The description of the tool that can be used by the Agent to decide whether to call this ConnectorTool.
        - `authConfig` EndUserAuthConfig — End-user authentication configuration used for Connection calls. The field values must be the names of context variables in the format `$context.variables.`.
          - `oauth2AuthCodeConfig` EndUserAuthConfigOauth2AuthCodeConfig — Oauth 2.0 Authorization Code authentication configuration.
            - `oauthToken` string — Required. Oauth token parameter name to pass through. Must be in the format `$context.variables.`.
          - `oauth2JwtBearerConfig` EndUserAuthConfigOauth2JwtBearerConfig — JWT Profile Oauth 2.0 Authorization Grant authentication configuration.
            - `subject` string — Required. Subject parameter name to pass through. Must be in the format `$context.variables.`.
            - `clientKey` string — Required. Client parameter name to pass through. Must be in the format `$context.variables.`.
            - `issuer` string — Required. Issuer parameter name to pass through. Must be in the format `$context.variables.`.
        - `name` string — Optional. The name of the tool that can be used by the Agent to decide whether to call this ConnectorTool.
      - `dataStoreTool` DataStoreTool — Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
        - `name` string — Required. The data store tool name.
        - `description` string — Optional. The tool description.
        - `filterParameterBehavior` 'FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED' | 'ALWAYS_INCLUDE' | 'NEVER_INCLUDE' — Optional. The filter parameter behavior.
        - `dataStoreSource` DataStoreToolDataStoreSource — Configuration for searching within a specific DataStore.
          - `filter` string — Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
          - `dataStore` DataStore — A DataStore resource in Vertex AI Search.
            - `documentProcessingMode` 'DOCUMENT_PROCESSING_MODE_UNSPECIFIED' | 'DOCUMENTS' | 'CHUNKS' — Output only. The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores.
            - `displayName` string — Output only. The display name of the data store.
            - `name` string — Required. Full resource name of the DataStore. Format: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`
            - `type` 'DATA_STORE_TYPE_UNSPECIFIED' | 'PUBLIC_WEB' | 'UNSTRUCTURED' | 'FAQ' | 'CONNECTOR' — Output only. The type of the data store. This field is readonly and populated by the server.
            - `createTime` string, google-datetime — Output only. Timestamp when the data store was created.
            - `connectorConfig` DataStoreConnectorConfig — The connector config for the data store connection.
              - …
        - `engineSource` DataStoreToolEngineSource — Configuration for searching within an Engine, potentially targeting specific DataStores.
          - `engine` string — Required. Full resource name of the Engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
          - `filter` string — Optional. A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
          - `dataStoreSources` DataStoreToolDataStoreSource[] — Optional. Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine.
            - `filter` string — Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
            - `dataStore` DataStore — A DataStore resource in Vertex AI Search.
              - …
        - `modalityConfigs` DataStoreToolModalityConfig[] — Optional. The modality configs for the data store.
          - `summarizationConfig` DataStoreToolSummarizationConfig — Summarization configuration.
            - `modelSettings` ModelSettings — Model settings contains various configurations for the LLM model.
              - …
            - `prompt` string — Optional. The prompt definition. If not set, default prompt will be used.
            - `disabled` boolean — Optional. Whether summarization is disabled.
          - `groundingConfig` DataStoreToolGroundingConfig — Grounding configuration.
            - `groundingLevel` number, float — Optional. The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.
            - `disabled` boolean — Optional. Whether grounding is disabled.
          - `modalityType` 'MODALITY_TYPE_UNSPECIFIED' | 'TEXT' | 'AUDIO' — Required. The modality type.
          - `rewriterConfig` DataStoreToolRewriterConfig — Rewriter configuration.
            - `modelSettings` ModelSettings — Model settings contains various configurations for the LLM model.
              - …
            - `prompt` string — Optional. The prompt definition. If not set, default prompt will be used.
            - `disabled` boolean — Optional. Whether the rewriter is disabled.
        - `boostSpecs` DataStoreToolBoostSpecs[] — Optional. Boost specification to boost certain documents.
          - `dataStores` string[] — Required. The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
          - `spec` DataStoreToolBoostSpec[] — Required. A list of boosting specifications.
            - `conditionBoostSpecs` DataStoreToolBoostSpecConditionBoostSpec[] — Required. A list of boosting specifications.
              - …
      - `systemTool` SystemTool — Pre-defined system tool.
        - `name` string — Required. The name of the system tool.
        - `description` string — Output only. The description of the system tool.
      - `displayName` string — Output only. The display name of the tool, derived based on the tool's type. For example, display name of a ClientFunction is derived from its `name` property.
      - `pythonFunction` PythonFunction — A Python function tool.
        - `pythonCode` string — Optional. The Python code to execute for the tool.
        - `name` string — Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
        - `description` string — Output only. The description of the Python function, parsed from the python code's docstring.
        - `serviceDirectoryConfig` ServiceDirectoryConfig — Configuration for tools using Service Directory.
          - `service` string — Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
      - `mcpTool` McpTool — An MCP tool. See https://modelcontextprotocol.io/specification/2025-06-18/server/tools for more details.
        - `description` string — Optional. The description of the MCP tool.
        - `serverAddress` string — Required. The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the server_address in the McpToolset. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details.
        - `inputSchema` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
          - `items` Schema — recursive
          - `maximum` number, double — Optional. Maximum value for Type.INTEGER and Type.NUMBER.
          - `prefixItems` Schema[] — Optional. Schemas of initial elements of Type.ARRAY.
          - `minimum` number, double — Optional. Minimum value for Type.INTEGER and Type.NUMBER.
          - `required` string[] — Optional. Required properties of Type.OBJECT.
          - `enum` string[] — Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
          - `title` string — Optional. The title of the schema.
          - `properties` object — Optional. Properties of Type.OBJECT.
          - `default` unknown
          - `uniqueItems` boolean — Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
          - `ref` string — Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.
          - `maxItems` string, int64 — Optional. Maximum number of the elements for Type.ARRAY.
          - `anyOf` Schema[] — Optional. The value should be validated against any (one or more) of the subschemas in the list.
          - `description` string — Optional. The description of the data.
          - `defs` object — Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
          - `type` 'TYPE_UNSPECIFIED' | 'STRING' | 'INTEGER' | 'NUMBER' | 'BOOLEAN' | 'OBJECT' | 'ARRAY' — Required. The type of the data.
          - `additionalProperties` Schema — recursive
          - `nullable` boolean — Optional. Indicates if the value may be null.
          - `minItems` string, int64 — Optional. Minimum number of the elements for Type.ARRAY.
        - `tlsConfig` TlsConfig — The TLS configuration.
          - `caCerts` TlsConfigCaCert[] — Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
            - `displayName` string — Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
            - `cert` string, byte — Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
        - `name` string — Required. The name of the MCP tool.
        - `serviceDirectoryConfig` ServiceDirectoryConfig — Configuration for tools using Service Directory.
          - `service` string — Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
        - `state` 'STATE_UNSPECIFIED' | 'ACTIVE' | 'INACTIVE' | 'STALE' — Output only. The dynamic availability state of the tool on the external server.
        - `apiAuthentication` ApiAuthentication — Authentication information required for API calls.
          - `oauthConfig` OAuthConfig — Configurations for authentication with OAuth.
            - `clientId` string — Required. The client ID from the OAuth provider.
            - `clientSecretVersion` string — Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `oauthGrantType` 'OAUTH_GRANT_TYPE_UNSPECIFIED' | 'CLIENT_CREDENTIAL' — Required. OAuth grant types.
            - `scopes` string[] — Optional. The OAuth scopes to grant.
            - `tokenEndpoint` string — Required. The token endpoint in the OAuth provider to exchange for an access token.
          - `serviceAccountAuthConfig` ServiceAccountAuthConfig — Configurations for authentication using a custom service account.
            - `serviceAccount` string — Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `scopes` string[] — Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
          - `apiKeyConfig` ApiKeyConfig — Configurations for authentication with API key.
            - `keyName` string — Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
            - `requestLocation` 'REQUEST_LOCATION_UNSPECIFIED' | 'HEADER' | 'QUERY_STRING' — Required. Key location in the request.
            - `apiKeySecretVersion` string — Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
          - `serviceAgentIdTokenAuthConfig` ServiceAgentIdTokenAuthConfig — Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent.
          - `bearerTokenConfig` BearerTokenConfig — Configurations for authentication with a bearer token.
            - `token` string — Required. The bearer token. Must be in the format `$context.variables.`.
        - `customHeaders` object — Optional. The custom headers to send in the request to the MCP server. The values must be in the format `$context.variables.` and can be set in the session variables. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection for more details.
        - `outputSchema` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
          - `items` Schema — recursive
          - `maximum` number, double — Optional. Maximum value for Type.INTEGER and Type.NUMBER.
          - `prefixItems` Schema[] — Optional. Schemas of initial elements of Type.ARRAY.
          - `minimum` number, double — Optional. Minimum value for Type.INTEGER and Type.NUMBER.
          - `required` string[] — Optional. Required properties of Type.OBJECT.
          - `enum` string[] — Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
          - `title` string — Optional. The title of the schema.
          - `properties` object — Optional. Properties of Type.OBJECT.
          - `default` unknown
          - `uniqueItems` boolean — Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
          - `ref` string — Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.
          - `maxItems` string, int64 — Optional. Maximum number of the elements for Type.ARRAY.
          - `anyOf` Schema[] — Optional. The value should be validated against any (one or more) of the subschemas in the list.
          - `description` string — Optional. The description of the data.
          - `defs` object — Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
          - `type` 'TYPE_UNSPECIFIED' | 'STRING' | 'INTEGER' | 'NUMBER' | 'BOOLEAN' | 'OBJECT' | 'ARRAY' — Required. The type of the data.
          - `additionalProperties` Schema — recursive
          - `nullable` boolean — Optional. Indicates if the value may be null.
          - `minItems` string, int64 — Optional. Minimum number of the elements for Type.ARRAY.
        - `nameOverride` string — Optional. The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
      - `etag` string — Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
      - `generatedSummary` string — Output only. If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
      - `googleSearchTool` GoogleSearchTool — Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool#google-search.
        - `preferredDomains` string[] — Optional. Specifies domains to restrict search results to. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
        - `excludeDomains` string[] — Optional. List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
        - `description` string — Optional. Description of the tool's purpose.
        - `contextUrls` string[] — Optional. Content will be fetched directly from these URLs for context and grounding. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
        - `promptConfig` GoogleSearchToolPromptConfig — Prompt settings used by the model when processing or summarizing the google search results.
          - `textPrompt` string — Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
          - `voicePrompt` string — Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.
        - `name` string — Required. The name of the tool.
      - `widgetTool` WidgetTool — Represents a widget tool that the agent can invoke. When the tool is chosen by the agent, agent will return the widget to the client. The client is responsible for processing the widget and generating the next user query to continue the interaction with the agent.
        - `parameters` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
          - `items` Schema — recursive
          - `maximum` number, double — Optional. Maximum value for Type.INTEGER and Type.NUMBER.
          - `prefixItems` Schema[] — Optional. Schemas of initial elements of Type.ARRAY.
          - `minimum` number, double — Optional. Minimum value for Type.INTEGER and Type.NUMBER.
          - `required` string[] — Optional. Required properties of Type.OBJECT.
          - `enum` string[] — Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
          - `title` string — Optional. The title of the schema.
          - `properties` object — Optional. Properties of Type.OBJECT.
          - `default` unknown
          - `uniqueItems` boolean — Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
          - `ref` string — Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.
          - `maxItems` string, int64 — Optional. Maximum number of the elements for Type.ARRAY.
          - `anyOf` Schema[] — Optional. The value should be validated against any (one or more) of the subschemas in the list.
          - `description` string — Optional. The description of the data.
          - `defs` object — Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
          - `type` 'TYPE_UNSPECIFIED' | 'STRING' | 'INTEGER' | 'NUMBER' | 'BOOLEAN' | 'OBJECT' | 'ARRAY' — Required. The type of the data.
          - `additionalProperties` Schema — recursive
          - `nullable` boolean — Optional. Indicates if the value may be null.
          - `minItems` string, int64 — Optional. Minimum number of the elements for Type.ARRAY.
        - `widgetType` 'WIDGET_TYPE_UNSPECIFIED' | 'CUSTOM' | 'PRODUCT_CAROUSEL' | 'PRODUCT_DETAILS' | 'QUICK_ACTIONS' | 'PRODUCT_COMPARISON' | 'ADVANCED_PRODUCT_DETAILS' | 'SHORT_FORM' | 'OVERALL_SATISFACTION' | 'ORDER_SUMMARY' | 'APPOINTMENT_DETAILS' | 'APPOINTMENT_SCHEDULER' | 'CONTACT_FORM' — Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED.
        - `uiConfig` object — Optional. Configuration for rendering the widget.
        - `description` string — Optional. The description of the widget tool.
        - `dataMapping` WidgetToolDataMapping — Configuration for mapping data from a source tool to the widget's input parameters.
          - `pythonFunction` PythonFunction — A Python function tool.
            - `pythonCode` string — Optional. The Python code to execute for the tool.
            - `name` string — Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
            - `description` string — Output only. The description of the Python function, parsed from the python code's docstring.
            - `serviceDirectoryConfig` ServiceDirectoryConfig — Configuration for tools using Service Directory.
              - …
          - `sourceToolName` string — Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: `projects/{project}/locations/{location}/agents/{agent}/tools/{tool}`
          - `fieldMappings` object — Optional. A map of widget input parameter fields to the corresponding output fields of the source tool.
          - `mode` 'MODE_UNSPECIFIED' | 'FIELD_MAPPING' | 'PYTHON_SCRIPT' — Optional. The mode of the data mapping.
          - `pythonScript` string — Deprecated: Use `python_function` instead.
        - `name` string — Required. The display name of the widget tool.
        - `textResponseConfig` WidgetToolTextResponseConfig — Configuration for the text response returned with the widget.
          - `staticText` string — Optional. The static text response to return when type is STATIC.
          - `type` 'TYPE_UNSPECIFIED' | 'NONE' | 'LLM_GENERATED' | 'STATIC' — Optional. The strategy for providing the text response.
          - `textResponseInstruction` string — Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
      - `timeout` string, google-duration — Optional. The timeout for the tool execution. If not set, the default timeout is 30 seconds for `SYNCHRONOUS` tools and 60 seconds for `ASYNCHRONOUS` tools.
      - `clientFunction` ClientFunction — Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent.
        - `name` string — Required. The function name.
        - `description` string — Optional. The function description.
        - `parameters` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
          - `items` Schema — recursive
          - `maximum` number, double — Optional. Maximum value for Type.INTEGER and Type.NUMBER.
          - `prefixItems` Schema[] — Optional. Schemas of initial elements of Type.ARRAY.
          - `minimum` number, double — Optional. Minimum value for Type.INTEGER and Type.NUMBER.
          - `required` string[] — Optional. Required properties of Type.OBJECT.
          - `enum` string[] — Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
          - `title` string — Optional. The title of the schema.
          - `properties` object — Optional. Properties of Type.OBJECT.
          - `default` unknown
          - `uniqueItems` boolean — Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
          - `ref` string — Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.
          - `maxItems` string, int64 — Optional. Maximum number of the elements for Type.ARRAY.
          - `anyOf` Schema[] — Optional. The value should be validated against any (one or more) of the subschemas in the list.
          - `description` string — Optional. The description of the data.
          - `defs` object — Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
          - `type` 'TYPE_UNSPECIFIED' | 'STRING' | 'INTEGER' | 'NUMBER' | 'BOOLEAN' | 'OBJECT' | 'ARRAY' — Required. The type of the data.
          - `additionalProperties` Schema — recursive
          - `nullable` boolean — Optional. Indicates if the value may be null.
          - `minItems` string, int64 — Optional. Minimum number of the elements for Type.ARRAY.
        - `response` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
          - `items` Schema — recursive
          - `maximum` number, double — Optional. Maximum value for Type.INTEGER and Type.NUMBER.
          - `prefixItems` Schema[] — Optional. Schemas of initial elements of Type.ARRAY.
          - `minimum` number, double — Optional. Minimum value for Type.INTEGER and Type.NUMBER.
          - `required` string[] — Optional. Required properties of Type.OBJECT.
          - `enum` string[] — Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
          - `title` string — Optional. The title of the schema.
          - `properties` object — Optional. Properties of Type.OBJECT.
          - `default` unknown
          - `uniqueItems` boolean — Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
          - `ref` string — Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.
          - `maxItems` string, int64 — Optional. Maximum number of the elements for Type.ARRAY.
          - `anyOf` Schema[] — Optional. The value should be validated against any (one or more) of the subschemas in the list.
          - `description` string — Optional. The description of the data.
          - `defs` object — Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
          - `type` 'TYPE_UNSPECIFIED' | 'STRING' | 'INTEGER' | 'NUMBER' | 'BOOLEAN' | 'OBJECT' | 'ARRAY' — Required. The type of the data.
          - `additionalProperties` Schema — recursive
          - `nullable` boolean — Optional. Indicates if the value may be null.
          - `minItems` string, int64 — Optional. Minimum number of the elements for Type.ARRAY.
      - `fileSearchTool` FileSearchTool — The file search tool allows the agent to search across the files uploaded by the app/agent developer. It has presets to give relatively good quality search over the uploaded files and summarization of the retrieved results.
        - `corpusType` 'CORPUS_TYPE_UNSPECIFIED' | 'USER_OWNED' | 'FULLY_MANAGED' — Optional. The type of the corpus. Default is FULLY_MANAGED.
        - `name` string — Required. The tool name.
        - `description` string — Optional. The tool description.
        - `fileCorpus` string — Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
      - `agentTool` AgentTool — Represents a tool that allows the agent to call another agent.
        - `name` string — Required. The name of the agent tool.
        - `description` string — Optional. Description of the tool's purpose.
        - `agent` string — Optional. The resource name of the agent that is the entry point of the tool. Format: `projects/{project}/locations/{location}/agents/{agent}`
    - `examples` Example[] — Optional. List of examples in the app.
      - `name` string — Identifier. The unique identifier of the example. Format: `projects/{project}/locations/{location}/apps/{app}/examples/{example}`
      - `entryAgent` string — Optional. The agent that initially handles the conversation. If not specified, the example represents a conversation that is handled by the root agent. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
      - `displayName` string — Required. Display name of the example.
      - `description` string — Optional. Human-readable description of the example.
      - `messages` Message[] — Optional. The collection of messages that make up the conversation.
        - `eventTime` string, google-datetime — Optional. Timestamp when the message was sent or received. Should not be used if the message is part of an example.
        - `chunks` Chunk[] — Optional. Content of the message as a series of chunks.
          - `agentTransfer` AgentTransfer — Represents an event indicating the transfer of a conversation to a different agent.
            - `targetAgent` string — Required. The agent to which the conversation is being transferred. The agent will handle the conversation from this point forward. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
            - `displayName` string — Output only. Display name of the agent.
          - `toolCall` ToolCall — Request for the client or the agent to execute the specified tool.
            - `tool` string — Optional. The name of the tool to execute. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
            - `displayName` string — Output only. Display name of the tool.
            - `args` object — Optional. The input parameters and values for the tool in JSON object format.
            - `toolsetTool` ToolsetTool — A tool that is created from a toolset.
              - …
            - `id` string — Optional. The unique identifier of the tool call. If populated, the client should return the execution result with the matching ID in ToolResponse.
          - `transcript` string — Optional. Transcript associated with the audio.
          - `text` string — Optional. Text data.
          - `payload` object — Optional. Custom payload data.
          - `toolResponse` ToolResponse — The execution result of a specific tool from the client or the agent.
            - `toolsetTool` ToolsetTool — A tool that is created from a toolset.
              - …
            - `id` string — Optional. The matching ID of the tool call the response is for.
            - `response` object — Required. The tool execution result in JSON object format. Use "output" key to specify tool response and "error" key to specify error details (if any). If "output" and "error" keys are not specified, then whole "response" is treated as tool execution result.
            - `displayName` string — Output only. Display name of the tool.
            - `tool` string — Optional. The name of the tool to execute. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
          - `image` Image — Represents an image input or output in the conversation.
            - `mimeType` string — Required. The IANA standard MIME type of the source data. Supported image types includes: * image/png * image/jpeg * image/webp
            - `data` string, byte — Required. Raw bytes of the image.
          - `updatedVariables` object — A struct represents variables that were updated in the conversation, keyed by variable names.
          - `defaultVariables` object — A struct represents default variables at the start of the conversation, keyed by variable names.
          - `blob` Blob — Represents a blob input or output in the conversation.
            - `mimeType` string — Required. The IANA standard MIME type of the source data.
            - `data` string, byte — Required. Raw bytes of the blob.
        - `role` string — Optional. The role within the conversation, e.g., user, agent.
      - `updateTime` string, google-datetime — Output only. Timestamp when the example was last updated.
      - `createTime` string, google-datetime — Output only. Timestamp when the example was created.
      - `invalid` boolean — Output only. The example may become invalid if referencing resources are deleted. Invalid examples will not be used as few-shot examples.
      - `etag` string — Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
    - `toolsets` Toolset[] — Optional. List of toolsets in the app.
      - `etag` string — ETag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
      - `mcpToolset` McpToolset — A toolset that contains a list of tools that are offered by the MCP server.
        - `serviceDirectoryConfig` ServiceDirectoryConfig — Configuration for tools using Service Directory.
          - `service` string — Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
        - `toolOverrides` McpToolOverride[] — Optional. Overrides for individual tools within this toolset. This allows overriding specific details like descriptions, names, or pinning the tools' states so they aren't fully dynamic.
          - `tool` string — Required. The original name of the tool as it is emitted by the MCP server.
          - `snapshot` McpToolDefinition — Container for a tool's core definition elements that are snapshot. Schemas in the snapshot are used as-is and cannot be overridden.
            - `outputSchema` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
              - …
            - `description` string — Output only. The description of the MCP tool. This can be overridden by `description_override` in `McpToolOverride`.
            - `inputSchema` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
              - …
          - `nameOverride` string — Optional. If present, this tool uses this name in the Agent instead of the original name. This is primarily used as an alias if the MCP server offers poorly named tools.
          - `descriptionOverride` string — Optional. If present, this tool uses this description instead of the original description from the server.
        - `apiAuthentication` ApiAuthentication — Authentication information required for API calls.
          - `oauthConfig` OAuthConfig — Configurations for authentication with OAuth.
            - `clientId` string — Required. The client ID from the OAuth provider.
            - `clientSecretVersion` string — Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `oauthGrantType` 'OAUTH_GRANT_TYPE_UNSPECIFIED' | 'CLIENT_CREDENTIAL' — Required. OAuth grant types.
            - `scopes` string[] — Optional. The OAuth scopes to grant.
            - `tokenEndpoint` string — Required. The token endpoint in the OAuth provider to exchange for an access token.
          - `serviceAccountAuthConfig` ServiceAccountAuthConfig — Configurations for authentication using a custom service account.
            - `serviceAccount` string — Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `scopes` string[] — Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
          - `apiKeyConfig` ApiKeyConfig — Configurations for authentication with API key.
            - `keyName` string — Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
            - `requestLocation` 'REQUEST_LOCATION_UNSPECIFIED' | 'HEADER' | 'QUERY_STRING' — Required. Key location in the request.
            - `apiKeySecretVersion` string — Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
          - `serviceAgentIdTokenAuthConfig` ServiceAgentIdTokenAuthConfig — Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent.
          - `bearerTokenConfig` BearerTokenConfig — Configurations for authentication with a bearer token.
            - `token` string — Required. The bearer token. Must be in the format `$context.variables.`.
        - `serverAddress` string — Required. The address of the MCP server, for example, "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details.
        - `tlsConfig` TlsConfig — The TLS configuration.
          - `caCerts` TlsConfigCaCert[] — Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
            - `displayName` string — Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
            - `cert` string, byte — Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
        - `customHeaders` object — Optional. The custom headers to send in the request to the MCP server. The values must be in the format `$context.variables.` and can be set in the session variables. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection for more details.
      - `timeout` string, google-duration — Optional. The timeout for the toolset execution. If not set, the default timeout is 30 seconds for `SYNCHRONOUS` toolsets and 60 seconds for `ASYNCHRONOUS` toolsets.
      - `displayName` string — Optional. The display name of the toolset. Must be unique within the same app.
      - `name` string — Identifier. The unique identifier of the toolset. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
      - `toolFakeConfig` ToolFakeConfig — Configuration for tool behavior in fake mode.
        - `codeBlock` CodeBlock — A code block to be executed instead of a real tool call.
          - `pythonCode` string — Required. Python code which will be invoked in tool fake mode. Expected Python function signature - To catch all tool calls: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: To catch a specific tool call: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: If the function returns None, the real tool will be invoked instead.
        - `enableFakeMode` boolean — Optional. Whether the tool is using fake mode.
      - `updateTime` string, google-datetime — Output only. Timestamp when the toolset was last updated.
      - `connectorToolset` ConnectorToolset — A toolset that generates tools from an Integration Connectors Connection.
        - `connection` string — Required. The full resource name of the referenced Integration Connectors Connection. Format: `projects/{project}/locations/{location}/connections/{connection}`
        - `connectorActions` Action[] — Required. The list of connector actions/entity operations to generate tools for.
          - `connectionActionId` string — ID of a Connection action for the tool to use.
          - `inputFields` string[] — Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
          - `entityOperation` ActionEntityOperation — Entity CRUD operation specification.
            - `entityId` string — Required. ID of the entity.
            - `operation` 'OPERATION_TYPE_UNSPECIFIED' | 'LIST' | 'GET' | 'CREATE' | 'UPDATE' | 'DELETE' — Required. Operation to perform on the entity.
          - `outputFields` string[] — Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
        - `authConfig` EndUserAuthConfig — End-user authentication configuration used for Connection calls. The field values must be the names of context variables in the format `$context.variables.`.
          - `oauth2AuthCodeConfig` EndUserAuthConfigOauth2AuthCodeConfig — Oauth 2.0 Authorization Code authentication configuration.
            - `oauthToken` string — Required. Oauth token parameter name to pass through. Must be in the format `$context.variables.`.
          - `oauth2JwtBearerConfig` EndUserAuthConfigOauth2JwtBearerConfig — JWT Profile Oauth 2.0 Authorization Grant authentication configuration.
            - `subject` string — Required. Subject parameter name to pass through. Must be in the format `$context.variables.`.
            - `clientKey` string — Required. Client parameter name to pass through. Must be in the format `$context.variables.`.
            - `issuer` string — Required. Issuer parameter name to pass through. Must be in the format `$context.variables.`.
      - `createTime` string, google-datetime — Output only. Timestamp when the toolset was created.
      - `executionType` 'EXECUTION_TYPE_UNSPECIFIED' | 'SYNCHRONOUS' | 'ASYNCHRONOUS' — Optional. The execution type of the tools in the toolset.
      - `openApiToolset` OpenApiToolset — A toolset that contains a list of tools that are defined by an OpenAPI schema.
        - `openApiSchema` string — Required. The OpenAPI schema of the toolset.
        - `tlsConfig` TlsConfig — The TLS configuration.
          - `caCerts` TlsConfigCaCert[] — Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
            - `displayName` string — Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
            - `cert` string, byte — Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
        - `apiAuthentication` ApiAuthentication — Authentication information required for API calls.
          - `oauthConfig` OAuthConfig — Configurations for authentication with OAuth.
            - `clientId` string — Required. The client ID from the OAuth provider.
            - `clientSecretVersion` string — Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `oauthGrantType` 'OAUTH_GRANT_TYPE_UNSPECIFIED' | 'CLIENT_CREDENTIAL' — Required. OAuth grant types.
            - `scopes` string[] — Optional. The OAuth scopes to grant.
            - `tokenEndpoint` string — Required. The token endpoint in the OAuth provider to exchange for an access token.
          - `serviceAccountAuthConfig` ServiceAccountAuthConfig — Configurations for authentication using a custom service account.
            - `serviceAccount` string — Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
            - `scopes` string[] — Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
          - `apiKeyConfig` ApiKeyConfig — Configurations for authentication with API key.
            - `keyName` string — Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
            - `requestLocation` 'REQUEST_LOCATION_UNSPECIFIED' | 'HEADER' | 'QUERY_STRING' — Required. Key location in the request.
            - `apiKeySecretVersion` string — Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
          - `serviceAgentIdTokenAuthConfig` ServiceAgentIdTokenAuthConfig — Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent.
          - `bearerTokenConfig` BearerTokenConfig — Configurations for authentication with a bearer token.
            - `token` string — Required. The bearer token. Must be in the format `$context.variables.`.
        - `serviceDirectoryConfig` ServiceDirectoryConfig — Configuration for tools using Service Directory.
          - `service` string — Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
        - `ignoreUnknownFields` boolean — Optional. If true, the agent will ignore unknown fields in the API response for all operations defined in the OpenAPI schema.
        - `url` string — Optional. The server URL of the Open API schema. This field is only set in toolsets in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.
      - `description` string — Optional. The description of the toolset.
    - `agents` Agent[] — Optional. List of agents in the app.
      - `beforeToolCallbacks` Callback[] — Optional. The callbacks to execute before the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.
        - `pythonCode` string — Required. The python code to execute for the callback.
        - `description` string — Optional. Human-readable description of the callback.
        - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
        - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
      - `tools` string[] — Optional. List of available tools for the agent. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
      - `afterModelCallbacks` Callback[] — Optional. The callbacks to execute after the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.
        - `pythonCode` string — Required. The python code to execute for the callback.
        - `description` string — Optional. Human-readable description of the callback.
        - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
        - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
      - `etag` string — Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
      - `generatedSummary` string — Output only. If the agent is generated by the LLM assistant, this field contains a descriptive summary of the generation.
      - `childAgents` string[] — Optional. List of child agents in the agent tree. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
      - `afterAgentCallbacks` Callback[] — Optional. The callbacks to execute after the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.
        - `pythonCode` string — Required. The python code to execute for the callback.
        - `description` string — Optional. Human-readable description of the callback.
        - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
        - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
      - `beforeModelCallbacks` Callback[] — Optional. The callbacks to execute before the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.
        - `pythonCode` string — Required. The python code to execute for the callback.
        - `description` string — Optional. Human-readable description of the callback.
        - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
        - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
      - `validationErrors` string[] — Output only. Misconfigurations or errors in the agent that may affect agent quality.
      - `llmAgent` AgentLlmAgent — Default agent type. The agent uses instructions and callbacks specified in the agent to perform the task using a large language model.
      - `displayName` string — Required. Display name of the agent.
      - `guardrails` string[] — Optional. List of guardrails for the agent. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
      - `transferRules` TransferRule[] — Optional. Agent transfer rules. If multiple rules match, the first one in the list will be used.
        - `childAgent` string — Required. The resource name of the child agent the rule applies to. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
        - `direction` 'DIRECTION_UNSPECIFIED' | 'PARENT_TO_CHILD' | 'CHILD_TO_PARENT' — Required. The direction of the transfer.
        - `deterministicTransfer` TransferRuleDeterministicTransfer — Deterministic transfer rule. When the condition evaluates to true, the transfer occurs.
          - `pythonCodeCondition` PythonCodeCondition — Python code block to evaluate the condition.
            - `pythonCode` string — Required. The python code to execute.
          - `expressionCondition` ExpressionCondition — Expression condition based on session state.
            - `expression` string — Required. The string representation of cloud.api.Expression condition.
        - `disablePlannerTransfer` TransferRuleDisablePlannerTransfer — A rule that prevents the planner from transferring to the target agent.
          - `expressionCondition` ExpressionCondition — Expression condition based on session state.
            - `expression` string — Required. The string representation of cloud.api.Expression condition.
      - `instruction` string — Optional. Instructions for the LLM model to guide the agent's behavior.
      - `beforeAgentCallbacks` Callback[] — Optional. The callbacks to execute before the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.
        - `pythonCode` string — Required. The python code to execute for the callback.
        - `description` string — Optional. Human-readable description of the callback.
        - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
        - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
      - `toolsets` AgentAgentToolset[] — Optional. List of toolsets for the agent.
        - `toolIds` string[] — Optional. The tools IDs to filter the toolset.
        - `toolset` string — Required. The resource name of the toolset. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
      - `modelSettings` ModelSettings — Model settings contains various configurations for the LLM model.
        - `temperature` number, double — Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative.
        - `model` string — Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
      - `description` string — Optional. Human-readable description of the agent.
      - `remoteDialogflowAgent` AgentRemoteDialogflowAgent — The agent which will transfer execution to a remote [Dialogflow CX](https://docs.cloud.google.com/dialogflow/cx/docs/concept/agent) agent. The Dialogflow agent will process subsequent user queries until the session ends or flow ends, and the control is transferred back to the parent CES agent.
        - `inputVariableMapping` object — Optional. The mapping of the app variables names to the Dialogflow session parameters names to be sent to the Dialogflow agent as input.
        - `agent` string — Required. The [Dialogflow](https://docs.cloud.google.com/dialogflow/cx/docs/concept/agent) agent resource name. Format: `projects/{project}/locations/{location}/agents/{agent}`
        - `flowId` string — Optional. The flow ID of the flow in the Dialogflow agent.
        - `languageCodeVariable` string — Optional. The name of the variable that contains the language code to be used for the Dialogflow session. If unspecified, the default language code of the Dialogflow agent will be used.
        - `respectResponseInterruptionSettings` boolean — Optional. Indicates whether to respect the message-level interruption settings configured in the Dialogflow agent. * If false: all response messages from the Dialogflow agent follow the app-level barge-in settings. * If true: only response messages with [`allow_playback_interruption`](https://docs.cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#text) set to true will be interruptable, all other messages follow the app-level barge-in settings.
        - `environmentId` string — Optional. The environment ID of the Dialogflow agent to be used for the agent execution. If not specified, the draft environment will be used.
        - `outputVariableMapping` object — Optional. The mapping of the Dialogflow session parameters names to the app variables names to be sent back to the CES agent after the Dialogflow agent execution ends.
      - `createTime` string, google-datetime — Output only. Timestamp when the agent was created.
      - `updateTime` string, google-datetime — Output only. Timestamp when the agent was last updated.
      - `name` string — Identifier. The unique identifier of the agent. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
      - `afterToolCallbacks` Callback[] — Optional. The callbacks to execute after the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.
        - `pythonCode` string — Required. The python code to execute for the callback.
        - `description` string — Optional. Human-readable description of the callback.
        - `disabled` boolean — Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
        - `proactiveExecutionEnabled` boolean — Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. **ENABLE WITH CAUTION**. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.
    - `app` App — An app serves as a top-level container for a group of agents, including the root agent and its sub-agents, along with their associated configurations. These agents work together to achieve specific goals within the app's context.
      - `clientCertificateSettings` ClientCertificateSettings — Settings for custom client certificates.
        - `privateKey` string — Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        - `tlsCertificate` string — Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
        - `passphrase` string — Optional. The name of the SecretManager secret version resource storing the passphrase to decrypt the private key. Should be left unset if the private key is not encrypted. Format: `projects/{project}/secrets/{secret}/versions/{version}`
      - `modelSettings` ModelSettings — Model settings contains various configurations for the LLM model.
        - `temperature` number, double — Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative.
        - `model` string — Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
      - `loggingSettings` LoggingSettings — Settings to describe the logging behaviors for the app.
        - `audioRecordingConfig` AudioRecordingConfig — Configuration for how the audio interactions should be recorded.
          - `gcsPathPrefix` string — Optional. The Cloud Storage path prefix for audio recordings. This prefix can include the following placeholders, which will be dynamically substituted at serving time: - $project: project ID - $location: app location - $app: app ID - $date: session date in YYYY-MM-DD format - $session: session ID If the path prefix is not specified, the default prefix `$project/$location/$app/$date/$session/` will be used.
          - `gcsBucket` string — Optional. The [Cloud Storage](https://cloud.google.com/storage) bucket to store the session audio recordings. The URI must start with "gs://". Please choose a bucket location that meets your data residency requirements. Note: If the Cloud Storage bucket is in a different project from the app, you should grant `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
        - `conversationLoggingSettings` ConversationLoggingSettings — Settings to describe the conversation logging behaviors for the app.
          - `disableConversationLogging` boolean — Optional. Whether to disable conversation logging for the sessions.
          - `retentionWindow` string, google-duration — Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
        - `evaluationAudioRecordingConfig` AudioRecordingConfig — Configuration for how the audio interactions should be recorded.
          - `gcsPathPrefix` string — Optional. The Cloud Storage path prefix for audio recordings. This prefix can include the following placeholders, which will be dynamically substituted at serving time: - $project: project ID - $location: app location - $app: app ID - $date: session date in YYYY-MM-DD format - $session: session ID If the path prefix is not specified, the default prefix `$project/$location/$app/$date/$session/` will be used.
          - `gcsBucket` string — Optional. The [Cloud Storage](https://cloud.google.com/storage) bucket to store the session audio recordings. The URI must start with "gs://". Please choose a bucket location that meets your data residency requirements. Note: If the Cloud Storage bucket is in a different project from the app, you should grant `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
        - `redactionConfig` RedactionConfig — Configuration to instruct how sensitive data should be handled.
          - `deidentifyTemplate` string — Optional. [DLP](https://cloud.google.com/dlp/docs) deidentify template name to instruct on how to de-identify content. Format: `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`
          - `enableRedaction` boolean — Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
          - `inspectTemplate` string — Optional. [DLP](https://cloud.google.com/dlp/docs) inspect template name to configure detection of sensitive data types. Format: `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`
        - `bigqueryExportSettings` BigQueryExportSettings — Settings to describe the BigQuery export behaviors for the app.
          - `enabled` boolean — Optional. Indicates whether the BigQuery export is enabled.
          - `dataset` string — Optional. The BigQuery **dataset ID** to export the data to.
          - `project` string — Optional. The **project ID** of the BigQuery dataset to export the data to. Note: If the BigQuery dataset is in a different project from the app, you should grant `roles/bigquery.admin` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
        - `cloudLoggingSettings` CloudLoggingSettings — Settings to describe the Cloud Logging behaviors for the app.
          - `enableCloudLogging` boolean — Optional. Whether to enable Cloud Logging for the sessions.
        - `metricAnalysisSettings` MetricAnalysisSettings — Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline.
          - `llmMetricsOptedOut` boolean — Optional. Whether to collect conversation data for llm analysis metrics. If true, conversation data will not be collected for llm analysis metrics; otherwise, conversation data will be collected.
        - `unredactedBigqueryExportSettings` BigQueryExportSettings — Settings to describe the BigQuery export behaviors for the app.
          - `enabled` boolean — Optional. Indicates whether the BigQuery export is enabled.
          - `dataset` string — Optional. The BigQuery **dataset ID** to export the data to.
          - `project` string — Optional. The **project ID** of the BigQuery dataset to export the data to. Note: If the BigQuery dataset is in a different project from the app, you should grant `roles/bigquery.admin` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
        - `unredactedAudioRecordingConfig` AudioRecordingConfig — Configuration for how the audio interactions should be recorded.
          - `gcsPathPrefix` string — Optional. The Cloud Storage path prefix for audio recordings. This prefix can include the following placeholders, which will be dynamically substituted at serving time: - $project: project ID - $location: app location - $app: app ID - $date: session date in YYYY-MM-DD format - $session: session ID If the path prefix is not specified, the default prefix `$project/$location/$app/$date/$session/` will be used.
          - `gcsBucket` string — Optional. The [Cloud Storage](https://cloud.google.com/storage) bucket to store the session audio recordings. The URI must start with "gs://". Please choose a bucket location that meets your data residency requirements. Note: If the Cloud Storage bucket is in a different project from the app, you should grant `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
      - `name` string — Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
      - `description` string — Optional. Human-readable description of the app.
      - `createTime` string, google-datetime — Output only. Timestamp when the app was created.
      - `audioProcessingConfig` AudioProcessingConfig — Configuration for how the input and output audio should be processed and delivered.
        - `bargeInConfig` BargeInConfig — Configuration for how the user barge-in activities should be handled.
          - `disableBargeIn` boolean — Optional. Deprecated: `disable_barge_in` is deprecated in favor of `disable_barge_in_control` in ChannelProfile. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored.
          - `bargeInAwareness` boolean — Optional. If enabled, the agent will adapt its next response based on the assumption that the user hasn't heard the full preceding agent message. This should not be used in scenarios where agent responses are displayed visually.
        - `inactivityTimeout` string, google-duration — Optional. The duration of user inactivity (no speech or interaction) before the agent prompts the user for reengagement. If not set, the agent will not prompt the user for reengagement.
        - `synthesizeSpeechConfigs` object — Optional. Configuration of how the agent response should be synthesized, mapping from the language code to SynthesizeSpeechConfig. If the configuration for the specified language code is not found, the configuration for the root language code will be used. For example, if the map contains "en-us" and "en", and the specified language code is "en-gb", then "en" configuration will be used. Note: Language code is case-insensitive.
        - `ambientSoundConfig` AmbientSoundConfig — Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
          - `volumeGainDb` number, double — Optional. Volume gain (in dB) of the normal native volume supported by ambient noise, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that.
          - `gcsUri` string — Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in [Cloud Storage](https://cloud.google.com/storage). Note: Please make sure the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com` has `storage.objects.get` permission to the Cloud Storage object.
          - `prebuiltAmbientNoise` 'PREBUILT_AMBIENT_NOISE_UNSPECIFIED' | 'RETAIL_STORE' | 'CONVENTION_HALL' | 'OUTDOOR' — Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
          - `prebuiltAmbientSound` string — Optional. Name of the prebuilt ambient sound. Valid values are: - "coffee_shop" - "keyboard" - "keypad" - "hum" - "office_1" - "office_2" - "office_3" - "room_1" - "room_2" - "room_3" - "room_4" - "room_5" - "air_conditioner"
      - `etag` string — Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
      - `locked` boolean — Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
      - `pinned` boolean — Optional. Whether the app is pinned in the app list.
      - `languageSettings` LanguageSettings — Language settings of the app.
        - `defaultLanguageCode` string — Optional. The default language code of the app.
        - `enableMultilingualSupport` boolean — Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
        - `supportedLanguageCodes` string[] — Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
        - `fallbackAction` string — Optional. Deprecated: This feature is no longer supported. Use `enable_multilingual_support` instead to improve handling of multilingual input. The action to perform when an agent receives input in an unsupported language. This can be a predefined action or a custom tool call. Valid values are: - A tool's full resource name, which triggers a specific tool execution. - A predefined system action, such as "escalate" or "exit", which triggers an EndSession signal with corresponding metadata to terminate the conversation.
      - `evaluationMetricsThresholds` EvaluationMetricsThresholds — Threshold settings for metrics in an Evaluation.
        - `goldenHallucinationMetricBehavior` 'HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED' | 'DISABLED' | 'ENABLED' — Optional. The hallucination metric behavior for golden evaluations.
        - `goldenEvaluationMetricsThresholds` EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds — Settings for golden evaluations.
          - `toolMatchingSettings` EvaluationMetricsThresholdsToolMatchingSettings — Settings for matching tool calls.
            - `extraToolCallBehavior` 'EXTRA_TOOL_CALL_BEHAVIOR_UNSPECIFIED' | 'FAIL' | 'ALLOW' — Optional. Behavior for extra tool calls. Defaults to FAIL.
          - `expectationLevelMetricsThresholds` EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds — Expectation level metrics thresholds.
            - `toolInvocationParameterCorrectnessThreshold` number, float — Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
          - `turnLevelMetricsThresholds` EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds — Turn level metrics thresholds.
            - `semanticSimilarityChannel` 'SEMANTIC_SIMILARITY_CHANNEL_UNSPECIFIED' | 'TEXT' | 'AUDIO' — Optional. The semantic similarity channel to use for evaluation.
            - `semanticSimilaritySuccessThreshold` integer — Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
            - `overallToolInvocationCorrectnessThreshold` number, float — Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
        - `hallucinationMetricBehavior` 'HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED' | 'DISABLED' | 'ENABLED' — Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
        - `scenarioHallucinationMetricBehavior` 'HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED' | 'DISABLED' | 'ENABLED' — Optional. The hallucination metric behavior for scenario evaluations.
      - `deploymentCount` integer — Output only. Number of deployments in the app.
      - `variableDeclarations` AppVariableDeclaration[] — Optional. The declarations of the variables.
        - `name` string — Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
        - `description` string — Required. The description of the variable.
        - `schema` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
          - `items` Schema — recursive
          - `maximum` number, double — Optional. Maximum value for Type.INTEGER and Type.NUMBER.
          - `prefixItems` Schema[] — Optional. Schemas of initial elements of Type.ARRAY.
          - `minimum` number, double — Optional. Minimum value for Type.INTEGER and Type.NUMBER.
          - `required` string[] — Optional. Required properties of Type.OBJECT.
          - `enum` string[] — Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
          - `title` string — Optional. The title of the schema.
          - `properties` object — Optional. Properties of Type.OBJECT.
          - `default` unknown
          - `uniqueItems` boolean — Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
          - `ref` string — Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.
          - `maxItems` string, int64 — Optional. Maximum number of the elements for Type.ARRAY.
          - `anyOf` Schema[] — Optional. The value should be validated against any (one or more) of the subschemas in the list.
          - `description` string — Optional. The description of the data.
          - `defs` object — Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
          - `type` 'TYPE_UNSPECIFIED' | 'STRING' | 'INTEGER' | 'NUMBER' | 'BOOLEAN' | 'OBJECT' | 'ARRAY' — Required. The type of the data.
          - `additionalProperties` Schema — recursive
          - `nullable` boolean — Optional. Indicates if the value may be null.
          - `minItems` string, int64 — Optional. Minimum number of the elements for Type.ARRAY.
      - `timeZoneSettings` TimeZoneSettings — TimeZone settings of the app.
        - `timeZone` string — Optional. The time zone of the app from the [time zone database](https://www.iana.org/time-zones), e.g., America/Los_Angeles, Europe/Paris.
      - `toolExecutionMode` 'TOOL_EXECUTION_MODE_UNSPECIFIED' | 'PARALLEL' | 'SEQUENTIAL' — Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
      - `errorHandlingSettings` ErrorHandlingSettings — Settings to describe how errors should be handled in the app.
        - `errorHandlingStrategy` 'ERROR_HANDLING_STRATEGY_UNSPECIFIED' | 'NONE' | 'FALLBACK_RESPONSE' | 'END_SESSION' — Optional. The strategy to use for error handling.
        - `fallbackResponseConfig` ErrorHandlingSettingsFallbackResponseConfig — Configuration for handling fallback responses.
          - `maxFallbackAttempts` integer — Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
          - `customFallbackMessages` object — Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by [supported language code](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/language).
        - `endSessionConfig` ErrorHandlingSettingsEndSessionConfig — Configuration for ending the session in case of system errors (e.g. LLM errors).
          - `escalateSession` boolean — Optional. Whether to escalate the session in EndSession. If session is escalated, metadata in EndSession will contain `session_escalated = true`. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/deploy/google-telephony-platform#transfer_a_call_to_a_human_agent for details.
      - `predefinedVariableDeclarations` AppVariableDeclaration[] — Output only. The declarations of predefined variables for the app.
        - `name` string — Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
        - `description` string — Required. The description of the variable.
        - `schema` Schema — Represents a select subset of an OpenAPI 3.0 schema object.
          - `items` Schema — recursive
          - `maximum` number, double — Optional. Maximum value for Type.INTEGER and Type.NUMBER.
          - `prefixItems` Schema[] — Optional. Schemas of initial elements of Type.ARRAY.
          - `minimum` number, double — Optional. Minimum value for Type.INTEGER and Type.NUMBER.
          - `required` string[] — Optional. Required properties of Type.OBJECT.
          - `enum` string[] — Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
          - `title` string — Optional. The title of the schema.
          - `properties` object — Optional. Properties of Type.OBJECT.
          - `default` unknown
          - `uniqueItems` boolean — Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
          - `ref` string — Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.
          - `maxItems` string, int64 — Optional. Maximum number of the elements for Type.ARRAY.
          - `anyOf` Schema[] — Optional. The value should be validated against any (one or more) of the subschemas in the list.
          - `description` string — Optional. The description of the data.
          - `defs` object — Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
          - `type` 'TYPE_UNSPECIFIED' | 'STRING' | 'INTEGER' | 'NUMBER' | 'BOOLEAN' | 'OBJECT' | 'ARRAY' — Required. The type of the data.
          - `additionalProperties` Schema — recursive
          - `nullable` boolean — Optional. Indicates if the value may be null.
          - `minItems` string, int64 — Optional. Minimum number of the elements for Type.ARRAY.
      - `metadata` object — Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
      - `globalInstruction` string — Optional. Instructions for all the agents in the app. You can use this instruction to set up a stable identity or personality across all the agents.
      - `updateTime` string, google-datetime — Output only. Timestamp when the app was last updated.
      - `rootAgent` string — Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
      - `dataStoreSettings` DataStoreSettings — Data store related settings for the app.
        - `engines` DataStoreSettingsEngine[] — Output only. The engines for the app.
          - `name` string — Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
          - `type` 'TYPE_UNSPECIFIED' | 'ENGINE_TYPE_SEARCH' | 'ENGINE_TYPE_CHAT' — Output only. The type of the engine.
      - `validationErrors` string[] — Output only. Misconfigurations or warnings in the app.
      - `displayName` string — Required. Display name of the app.
      - `defaultChannelProfile` ChannelProfile — A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony.
        - `disableBargeInControl` boolean — Optional. Whether to disable user barge-in control in the conversation. - **true**: User interruptions are disabled while the agent is speaking. - **false**: The agent retains automatic control over when the user can interrupt.
        - `personaProperty` ChannelProfilePersonaProperty — Represents the persona property of a channel.
          - `persona` 'UNKNOWN' | 'CONCISE' | 'CHATTY' — Optional. The persona of the channel.
        - `noiseSuppressionLevel` string — Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
        - `whatsappConfig` ChannelProfileWhatsAppConfig — Configuration specific to WhatsApp deployments.
          - `phoneNumber` string — Optional. The phone number in E.164 format.
          - `phoneNumberId` string — Required. The Meta phone number ID.
          - `description` string — Output only. The description of the Meta business page or profile.
          - `displayName` string — Output only. The fetched Meta business page name.
          - `wabaId` string — Required. The WhatsApp Business Account ID.
          - `thumbnailUrl` string — Output only. The fetched Meta business profile thumbnail URL.
        - `webWidgetConfig` ChannelProfileWebWidgetConfig — Message for configuration for the web widget.
          - `modality` 'MODALITY_UNSPECIFIED' | 'CHAT_AND_VOICE' | 'VOICE_ONLY' | 'CHAT_ONLY' | 'CHAT_VOICE_AND_VIDEO' — Optional. The modality of the web widget.
          - `theme` 'THEME_UNSPECIFIED' | 'LIGHT' | 'DARK' — Optional. The theme of the web widget.
          - `webWidgetTitle` string — Optional. The title of the web widget.
          - `securitySettings` ChannelProfileWebWidgetConfigSecuritySettings — Security settings for the web widget.
            - `enablePublicAccess` boolean — Optional. Indicates whether public access to the web widget is enabled. If `true`, the web widget will be publicly accessible. If `false`, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.
            - `enableRecaptcha` boolean — Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
            - `enableOriginCheck` boolean — Optional. Indicates whether origin check for the web widget is enabled. If `true`, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.
            - `allowedOrigins` string[] — Optional. The origins that are allowed to host the web widget. An origin is defined by RFC 6454. If empty, all origins are allowed. A maximum of 100 origins is allowed. Example: "https://example.com"
        - `disableDtmf` boolean — Optional. Whether to disable DTMF (dual-tone multi-frequency).
        - `instagramConfig` ChannelProfileInstagramConfig — Configuration specific to Instagram deployments.
          - `instagramAccountId` string — Required. The Instagram Account ID.
          - `displayName` string — Output only. The fetched Meta business page name.
          - `thumbnailUrl` string — Output only. The fetched Meta business profile thumbnail URL.
          - `description` string — Output only. The description of the Meta business page or profile.
        - `profileId` string — Optional. The unique identifier of the channel profile.
        - `channelType` 'UNKNOWN' | 'WEB_UI' | 'API' | 'TWILIO' | 'GOOGLE_TELEPHONY_PLATFORM' | 'CONTACT_CENTER_AS_A_SERVICE' | 'CONTACT_CENTER_AS_A_SERVICE_CHAT' | 'FIVE9' | 'CONTACT_CENTER_INTEGRATION' | 'WHATSAPP' | 'INSTAGRAM' — Optional. The type of the channel profile.
      - `vpcScSettings` VpcScSettings — VPC-SC settings for the app.
        - `allowedOrigins` string[] — Optional. The allowed HTTP(s) origins that OpenAPI tools in the App are able to directly call when VPC Service Controls are enabled. These strings must match the origin exactly, including the port if specified. For example, "https://example.com" or "https://example.com:443". This list does not yet apply to Python tools that may make direct HTTP calls.
      - `guardrails` string[] — Optional. List of guardrails for the app. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/ces.md) · [All operations](https://skmtc.dev/google/apis/ces/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/ces/revisions/429598666166/schema)
