UNPKG

googleapis

Version:
1,229 lines 770 kB
import { OAuth2Client, JWT, Compute, UserRefreshClient, BaseExternalAccountClient, GaxiosResponseWithHTTP2, GoogleConfigurable, MethodOptions, StreamMethodOptions, GlobalOptions, GoogleAuth, BodyResponseCallback, APIRequestContext } from 'googleapis-common'; import { Readable } from 'stream'; export declare namespace ces_v1beta { export interface Options extends GlobalOptions { version: 'v1beta'; } interface StandardParameters { /** * Auth client or API Key for the request */ auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient | BaseExternalAccountClient | GoogleAuth; /** * V1 error format. */ '$.xgafv'?: string; /** * OAuth access token. */ access_token?: string; /** * Data format for response. */ alt?: string; /** * JSONP */ callback?: string; /** * Selector specifying which fields to include in a partial response. */ fields?: string; /** * API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */ key?: string; /** * OAuth 2.0 token for the current user. */ oauth_token?: string; /** * Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** * Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. */ quotaUser?: string; /** * Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** * Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; } /** * Gemini Enterprise for Customer Experience API * * * * @example * ```js * const {google} = require('googleapis'); * const ces = google.ces('v1beta'); * ``` */ export class Ces { context: APIRequestContext; projects: Resource$Projects; constructor(options: GlobalOptions, google?: GoogleConfigurable); } /** * 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. */ export interface Schema$Action { /** * ID of a Connection action for the tool to use. */ connectionActionId?: string | null; /** * Entity operation configuration for the tool to use. */ entityOperation?: Schema$ActionEntityOperation; /** * Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used. */ inputFields?: string[] | null; /** * Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned. */ outputFields?: string[] | null; } /** * Entity CRUD operation specification. */ export interface Schema$ActionEntityOperation { /** * Required. ID of the entity. */ entityId?: string | null; /** * Required. Operation to perform on the entity. */ operation?: string | null; } /** * An agent acts as the fundamental building block that provides instructions to the Large Language Model (LLM) for executing specific tasks. */ export interface Schema$Agent { /** * 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. */ afterAgentCallbacks?: Schema$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. */ afterModelCallbacks?: Schema$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. */ afterToolCallbacks?: Schema$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. */ beforeAgentCallbacks?: Schema$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. */ beforeModelCallbacks?: Schema$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. */ beforeToolCallbacks?: Schema$Callback[]; /** * Optional. List of child agents in the agent tree. Format: `projects/{project\}/locations/{location\}/apps/{app\}/agents/{agent\}` */ childAgents?: string[] | null; /** * Output only. Timestamp when the agent was created. */ createTime?: string | null; /** * Optional. Human-readable description of the agent. */ description?: string | null; /** * Required. Display name of the agent. */ displayName?: string | null; /** * 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. */ etag?: string | null; /** * Output only. If the agent is generated by the LLM assistant, this field contains a descriptive summary of the generation. */ generatedSummary?: string | null; /** * Optional. List of guardrails for the agent. Format: `projects/{project\}/locations/{location\}/apps/{app\}/guardrails/{guardrail\}` */ guardrails?: string[] | null; /** * Optional. Instructions for the LLM model to guide the agent's behavior. */ instruction?: string | null; /** * Optional. The default agent type. */ llmAgent?: Schema$AgentLlmAgent; /** * Optional. Configurations for the LLM model. */ modelSettings?: Schema$ModelSettings; /** * Identifier. The unique identifier of the agent. Format: `projects/{project\}/locations/{location\}/apps/{app\}/agents/{agent\}` */ name?: string | null; /** * Optional. The remote [Dialogflow](https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents) agent to be used for the agent execution. If this field is set, all other agent level properties will be ignored. Note: If the Dialogflow agent is in a different project from the app, you should grant `roles/dialogflow.client` to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`. */ remoteDialogflowAgent?: Schema$AgentRemoteDialogflowAgent; /** * Optional. List of available tools for the agent. Format: `projects/{project\}/locations/{location\}/apps/{app\}/tools/{tool\}` */ tools?: string[] | null; /** * Optional. List of toolsets for the agent. */ toolsets?: Schema$AgentAgentToolset[]; /** * Optional. Agent transfer rules. If multiple rules match, the first one in the list will be used. */ transferRules?: Schema$TransferRule[]; /** * Output only. Timestamp when the agent was last updated. */ updateTime?: string | null; /** * Output only. Misconfigurations or errors in the agent that may affect agent quality. */ validationErrors?: string[] | null; } /** * A toolset with a selection of its tools. */ export interface Schema$AgentAgentToolset { /** * Optional. The tools IDs to filter the toolset. */ toolIds?: string[] | null; /** * Required. The resource name of the toolset. Format: `projects/{project\}/locations/{location\}/apps/{app\}/toolsets/{toolset\}` */ toolset?: string | null; } /** * 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 */ export interface Schema$AgentCard { /** * Required. A description of the agent's domain of action/solution space. */ description?: string | null; /** * Required. A human-readable name for the agent. */ name?: string | null; /** * 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. */ skills?: Schema$AgentSkill[]; /** * Required. Ordered list of supported interfaces. The first entry is preferred. */ supportedInterfaces?: Schema$AgentInterface[]; /** * Required. The version of the agent. */ version?: string | null; } /** * Declares a combination of a target URL, transport and protocol version for interacting with the agent. This allows agents to expose the same functionality over multiple protocol binding mechanisms. */ export interface Schema$AgentInterface { /** * 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`. */ protocolBinding?: string | null; /** * Required. The version of the A2A protocol this interface exposes. Use the latest supported minor version per major version. Examples: "0.3", "1.0" */ protocolVersion?: string | null; /** * Tenant ID to be used in the request when calling the agent. */ tenant?: string | null; /** * 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" */ url?: string | null; } /** * Default agent type. The agent uses instructions and callbacks specified in the agent to perform the task using a large language model. */ export interface Schema$AgentLlmAgent { } /** * 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. */ export interface Schema$AgentRemoteDialogflowAgent { /** * Required. The [Dialogflow](https://docs.cloud.google.com/dialogflow/cx/docs/concept/agent) agent resource name. Format: `projects/{project\}/locations/{location\}/agents/{agent\}` */ agent?: string | null; /** * Optional. The environment ID of the Dialogflow agent to be used for the agent execution. If not specified, the draft environment will be used. */ environmentId?: string | null; /** * Optional. The flow ID of the flow in the Dialogflow agent. */ flowId?: string | null; /** * Optional. The mapping of the app variables names to the Dialogflow session parameters names to be sent to the Dialogflow agent as input. */ inputVariableMapping?: { [key: string]: string; } | null; /** * 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. */ languageCodeVariable?: string | null; /** * 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. */ outputVariableMapping?: { [key: string]: string; } | null; /** * 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. */ respectResponseInterruptionSettings?: boolean | null; } /** * Represents a distinct capability or function that an agent can perform. */ export interface Schema$AgentSkill { /** * Required. A detailed description of the skill. */ description?: string | null; /** * Example prompts or scenarios that this skill can handle. */ examples?: string[] | null; /** * Required. A unique identifier for the agent's skill. */ id?: string | null; /** * The set of supported input media types for this skill, overriding the agent's defaults. */ inputModes?: string[] | null; /** * Required. A human-readable name for the skill. */ name?: string | null; /** * The set of supported output media types for this skill, overriding the agent's defaults. */ outputModes?: string[] | null; /** * Required. A set of keywords describing the skill's capabilities. */ tags?: string[] | null; } /** * Represents a tool that allows the agent to call another agent. */ export interface Schema$AgentTool { /** * Optional. The resource name of the agent that is the entry point of the tool. Format: `projects/{project\}/locations/{location\}/agents/{agent\}` */ agent?: string | null; /** * Optional. Description of the tool's purpose. */ description?: string | null; /** * Required. The name of the agent tool. */ name?: string | null; } /** * Represents an event indicating the transfer of a conversation to a different agent. */ export interface Schema$AgentTransfer { /** * Output only. Display name of the agent. */ displayName?: string | null; /** * 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\}` */ targetAgent?: string | null; } /** * Aggregated metrics for an evaluation or evaluation dataset. */ export interface Schema$AggregatedMetrics { /** * Output only. Aggregated metrics, grouped by app version ID. */ metricsByAppVersion?: Schema$AggregatedMetricsMetricsByAppVersion[]; } /** * Metrics for hallucination results. */ export interface Schema$AggregatedMetricsHallucinationMetrics { /** * Output only. The average hallucination score (0 to 1). */ score?: number | null; } /** * Metrics aggregated per app version. */ export interface Schema$AggregatedMetricsMetricsByAppVersion { /** * Output only. The app version ID. */ appVersionId?: string | null; /** * Output only. The number of times the evaluation failed. */ failCount?: number | null; /** * Output only. Metrics for hallucination within this app version. */ hallucinationMetrics?: Schema$AggregatedMetricsHallucinationMetrics[]; /** * Output only. Metrics aggregated per turn within this app version. */ metricsByTurn?: Schema$AggregatedMetricsMetricsByTurn[]; /** * Output only. The number of times the evaluation passed. */ passCount?: number | null; /** * Output only. Metrics for semantic similarity within this app version. */ semanticSimilarityMetrics?: Schema$AggregatedMetricsSemanticSimilarityMetrics[]; /** * Output only. Metrics for tool call latency within this app version. */ toolCallLatencyMetrics?: Schema$AggregatedMetricsToolCallLatencyMetrics[]; /** * Output only. Metrics for each tool within this app version. */ toolMetrics?: Schema$AggregatedMetricsToolMetrics[]; /** * Output only. Metrics for turn latency within this app version. */ turnLatencyMetrics?: Schema$AggregatedMetricsTurnLatencyMetrics[]; } /** * Metrics aggregated per turn. */ export interface Schema$AggregatedMetricsMetricsByTurn { /** * Output only. Metrics for hallucination within this turn. */ hallucinationMetrics?: Schema$AggregatedMetricsHallucinationMetrics[]; /** * Output only. Metrics for semantic similarity within this turn. */ semanticSimilarityMetrics?: Schema$AggregatedMetricsSemanticSimilarityMetrics[]; /** * Output only. Metrics for tool call latency within this turn. */ toolCallLatencyMetrics?: Schema$AggregatedMetricsToolCallLatencyMetrics[]; /** * Output only. Metrics for each tool within this turn. */ toolMetrics?: Schema$AggregatedMetricsToolMetrics[]; /** * Output only. The turn index (0-based). */ turnIndex?: number | null; /** * Output only. Metrics for turn latency within this turn. */ turnLatencyMetrics?: Schema$AggregatedMetricsTurnLatencyMetrics[]; } /** * Metrics for semantic similarity results. */ export interface Schema$AggregatedMetricsSemanticSimilarityMetrics { /** * Output only. The average semantic similarity score (0-4). */ score?: number | null; } /** * Metrics for tool call latency. */ export interface Schema$AggregatedMetricsToolCallLatencyMetrics { /** * Output only. The average latency of the tool calls. */ averageLatency?: string | null; /** * Output only. The name of the tool. */ tool?: string | null; } /** * Metrics for a single tool. */ export interface Schema$AggregatedMetricsToolMetrics { /** * Output only. The number of times the tool failed. */ failCount?: number | null; /** * Output only. The number of times the tool passed. */ passCount?: number | null; /** * Output only. The name of the tool. */ tool?: string | null; } /** * Metrics for turn latency. */ export interface Schema$AggregatedMetricsTurnLatencyMetrics { /** * Output only. The average latency of the turns. */ averageLatency?: string | null; } /** * Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. */ export interface Schema$AmbientSoundConfig { /** * 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. */ gcsUri?: string | null; /** * Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`. */ prebuiltAmbientNoise?: string | null; /** * 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" */ prebuiltAmbientSound?: string | null; /** * 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. */ volumeGainDb?: number | null; } /** * Authentication information required for API calls. */ export interface Schema$ApiAuthentication { /** * Optional. Config for API key auth. */ apiKeyConfig?: Schema$ApiKeyConfig; /** * Optional. Config for bearer token auth. */ bearerTokenConfig?: Schema$BearerTokenConfig; /** * Optional. Config for OAuth. */ oauthConfig?: Schema$OAuthConfig; /** * Optional. Config for service account authentication. */ serviceAccountAuthConfig?: Schema$ServiceAccountAuthConfig; /** * Optional. Config for ID token auth generated from CES service agent. */ serviceAgentIdTokenAuthConfig?: Schema$ServiceAgentIdTokenAuthConfig; } /** * Configurations for authentication with API key. */ export interface Schema$ApiKeyConfig { /** * 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`. */ apiKeySecretVersion?: string | null; /** * 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. */ keyName?: string | null; /** * Required. Key location in the request. */ requestLocation?: string | null; } /** * 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. */ export interface Schema$App { /** * Optional. Audio processing configuration of the app. */ audioProcessingConfig?: Schema$AudioProcessingConfig; /** * Optional. The default client certificate settings for the app. */ clientCertificateSettings?: Schema$ClientCertificateSettings; /** * Output only. Timestamp when the app was created. */ createTime?: string | null; /** * Optional. The data store settings for the app. */ dataStoreSettings?: Schema$DataStoreSettings; /** * Optional. The default channel profile used by the app. */ defaultChannelProfile?: Schema$ChannelProfile; /** * Output only. Number of deployments in the app. */ deploymentCount?: number | null; /** * Optional. Human-readable description of the app. */ description?: string | null; /** * Required. Display name of the app. */ displayName?: string | null; /** * Optional. Error handling settings of the app. */ errorHandlingSettings?: Schema$ErrorHandlingSettings; /** * 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. */ etag?: string | null; /** * Optional. The evaluation thresholds for the app. */ evaluationMetricsThresholds?: Schema$EvaluationMetricsThresholds; /** * Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined. */ evaluationPersonas?: Schema$EvaluationPersona[]; /** * Optional. The evaluation settings for the app. */ evaluationSettings?: Schema$EvaluationSettings; /** * 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. */ globalInstruction?: string | null; /** * Optional. List of guardrails for the app. Format: `projects/{project\}/locations/{location\}/apps/{app\}/guardrails/{guardrail\}` */ guardrails?: string[] | null; /** * Optional. Language settings of the app. */ languageSettings?: Schema$LanguageSettings; /** * Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected. */ locked?: boolean | null; /** * Optional. Logging settings of the app. */ loggingSettings?: Schema$LoggingSettings; /** * Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages. */ metadata?: { [key: string]: string; } | null; /** * Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed. */ modelSettings?: Schema$ModelSettings; /** * Identifier. The unique identifier of the app. Format: `projects/{project\}/locations/{location\}/apps/{app\}` */ name?: string | null; /** * Optional. Whether the app is pinned in the app list. */ pinned?: boolean | null; /** * Output only. The declarations of predefined variables for the app. */ predefinedVariableDeclarations?: Schema$AppVariableDeclaration[]; /** * Optional. The root agent is the entry point of the app. Format: `projects/{project\}/locations/{location\}/apps/{app\}/agents/{agent\}` */ rootAgent?: string | null; /** * Optional. TimeZone settings of the app. */ timeZoneSettings?: Schema$TimeZoneSettings; /** * Optional. The tool execution mode for the app. If not provided, will default to PARALLEL. */ toolExecutionMode?: string | null; /** * Output only. Timestamp when the app was last updated. */ updateTime?: string | null; /** * Output only. Misconfigurations or warnings in the app. */ validationErrors?: string[] | null; /** * Optional. The declarations of the variables. */ variableDeclarations?: Schema$AppVariableDeclaration[]; /** * Optional. VPC-SC settings for the app. */ vpcScSettings?: Schema$VpcScSettings; } /** * A snapshot of the app. */ export interface Schema$AppSnapshot { /** * Optional. List of agents in the app. */ agents?: Schema$Agent[]; /** * Optional. The basic settings for the app. */ app?: Schema$App; /** * Optional. List of examples in the app. */ examples?: Schema$Example[]; /** * Optional. List of guardrails in the app. */ guardrails?: Schema$Guardrail[]; /** * Optional. List of tools in the app. */ tools?: Schema$Tool[]; /** * Optional. List of toolsets in the app. */ toolsets?: Schema$Toolset[]; } /** * Defines the structure and metadata for a variable. */ export interface Schema$AppVariableDeclaration { /** * Required. The description of the variable. */ description?: string | null; /** * Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores. */ name?: string | null; /** * Required. The schema of the variable. */ schema?: Schema$Schema; } /** * 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. */ export interface Schema$AppVersion { /** * Output only. Timestamp when the app version was created. */ createTime?: string | null; /** * Output only. Email of the user who created the app version. */ creator?: string | null; /** * Optional. The description of the app version. */ description?: string | null; /** * Optional. The display name of the app version. */ displayName?: string | null; /** * 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. */ etag?: string | null; /** * Identifier. The unique identifier of the app version. Format: `projects/{project\}/locations/{location\}/apps/{app\}/versions/{version\}` */ name?: string | null; /** * Output only. The snapshot of the app when the version is created. */ snapshot?: Schema$AppSnapshot; } /** * Configuration for how the input and output audio should be processed and delivered. */ export interface Schema$AudioProcessingConfig { /** * Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. */ ambientSoundConfig?: Schema$AmbientSoundConfig; /** * Optional. Configures the agent behavior for the user barge-in activities. */ bargeInConfig?: Schema$BargeInConfig; /** * 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. */ inactivityTimeout?: string | null; /** * 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. */ synthesizeSpeechConfigs?: { [key: string]: Schema$SynthesizeSpeechConfig; } | null; } /** * Configuration for how the audio interactions should be recorded. */ export interface Schema$AudioRecordingConfig { /** * 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`. */ gcsBucket?: string | null; /** * 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. */ gcsPathPrefix?: string | null; } /** * Configuration for how the user barge-in activities should be handled. */ export interface Schema$BargeInConfig { /** * 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. */ bargeInAwareness?: boolean | null; /** * 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. */ disableBargeIn?: boolean | null; } /** * Request message for AgentService.BatchDeleteConversations. */ export interface Schema$BatchDeleteConversationsRequest { /** * Required. The resource names of the conversations to delete. */ conversations?: string[] | null; } /** * Response message for AgentService.BatchDeleteConversations. */ export interface Schema$BatchDeleteConversationsResponse { /** * The list of conversations that were successfully deleted. */ deletedConversations?: string[] | null; /** * Optional. A list of error messages associated with conversations that failed to be deleted. */ errorMessages?: string[] | null; /** * The list of conversations that failed to be deleted. */ failedConversations?: string[] | null; } /** * Configurations for authentication with a bearer token. */ export interface Schema$BearerTokenConfig { /** * Required. The bearer token. Must be in the format `$context.variables.`. */ token?: string | null; } /** * Settings to describe the BigQuery export behaviors for the app. */ export interface Schema$BigQueryExportSettings { /** * Optional. The BigQuery **dataset ID** to export the data to. */ dataset?: string | null; /** * Optional. Indicates whether the BigQuery export is enabled. */ enabled?: boolean | null; /** * 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`. */ project?: string | null; } /** * Represents a blob input or output in the conversation. */ export interface Schema$Blob { /** * Required. Raw bytes of the blob. */ data?: string | null; /** * Required. The IANA standard MIME type of the source data. */ mimeType?: string | null; } /** * A callback defines the custom logic to be executed at various stages of agent interaction. */ export interface Schema$Callback { /** * Optional. Human-readable description of the callback. */ description?: string | null; /** * Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent. */ disabled?: boolean | null; /** * 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. */ proactiveExecutionEnabled?: boolean | null; /** * Required. The python code to execute for the callback. */ pythonCode?: string | null; } /** * The request message for Operations.CancelOperation. */ export interface Schema$CancelOperationRequest { } /** * Changelogs represent a change made to the app or to an resource within the app. */ export interface Schema$Changelog { /** * Output only. The action that was performed on the resource. */ action?: string | null; /** * Output only. Email address of the change author. */ author?: string | null; /** * Output only. The time when the change was made. */ createTime?: string | null; /** * Output only. The dependent resources that were changed. */ dependentResources?: Array<{ [key: string]: any; }> | null; /** * Output only. Description of the change. which typically captures the changed fields in the resource. */ description?: string | null; /** * Output only. Display name of the change. It typically should be the display name of the resource that was changed. */ displayName?: string | null; /** * Identifier. The unique identifier of the changelog. Format: `projects/{project\}/locations/{location\}/apps/{app\}/changelogs/{changelog\}` */ name?: string | null; /** * Output only. The new resource after the change. */ newResource?: { [key: string]: any; } | null; /** * Output only. The original resource before the change. */ originalResource?: { [key: string]: any; } | null; /** * Output only. The resource that was changed. */ resource?: string | null; /** * Output only. The type of the resource that was changed. */ resourceType?: string | null; /** * Output only. The monotonically increasing sequence number of the changelog. */ sequenceNumber?: string | null; } /** * A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. */ export interface Schema$ChannelProfile { /** * Optional. The type of the channel profile. */ channelType?: string | null; /** * 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. */ disableBargeInControl?: boolean | null; /** * Optional. Whether to disable DTMF (dual-tone multi-frequency). */ disableDtmf?: boolean | null; /** * Optional. Configuration specific to Instagram deployments. */ instagramConfig?: Schema$ChannelProfileInstagramConfig; /** * Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high". */ noiseSuppressionLevel?: string | null; /** * Optional. The persona property of the channel profile. */ personaProperty?: Schema$ChannelProfilePersonaProperty; /** * Optional. The unique identifier of the channel profile. */ profileId?: string | null; /** * Optional. The configuration for the web widget. */ webWidgetConfig?: Schema$ChannelProfileWebWidgetConfig; /** * Optional. Configuration specific to WhatsApp deployments. */ whatsappConfig?: Schema$ChannelProfileWhatsAppConfig; } /** * Configuration specific to Instagram deployments. */ export interface Schema$ChannelProfileInstagramConfig { /** * Output only. The description of the Meta business page or profile. */ description?: string | null; /** * Output only. The fetched Meta business page name. */ displayName?: string | null; /** * Required. The Instagram Account ID. */ instagramAccountId?: string | null; /** * Output only. The fetched Meta business profile thumbnail URL. */ thumbnailUrl?: string | null; } /** * Represents the persona property of a channel. */ export interface Schema$ChannelProfilePersonaProperty { /** * Optional. The persona of the channel. */ persona?: string | null; } /** * Message for configuration for the web widget. */ export interface Schema$ChannelProfileWebWidgetConfig { /** * Optional. The modality of the web widget. */ modality?: string | null; /** * Optional. The security settings of the web widget. */ securitySettings?: Schema$ChannelProfileWebWidgetConfigSecuritySettings; /** * Optional. The theme of the web widget. */ theme?: string | null; /** * Optional. The title of the web widget. */ webWidgetTitle?: string | null; } /** * Security settings for the web widget. */ export interface Schema$ChannelProfileWebWidgetConfigSecuritySettings { /** * 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" */ allowedOrigins?: string[] | null; /** * 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. */ enableOriginCheck?: boolean | null; /** * 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. */ enablePublicAccess?: boolean | null; /** * Optional. Indicates whether reCAPTCHA verification for the web widget is enabled. */ enableRecaptcha?: boolean | null; } /** * Configuration specific to WhatsApp deployments. */ export interface Schema$ChannelProfileWhatsAppConfig { /** * Output only. The description of the Meta business page or profile. */ description?: string | null; /** * Output only. The fetched Meta business page name. */ displayName?: string | null; /** * Optional. The phone number in E.164 format. */ phoneNumber?: string | null; /** * Required. The Meta phone number ID. */ phoneNumberId?: string | null; /** * Output only. The fetched Meta business profile thumbnail URL. */ thumbnailUrl?: string | null; /** * Required. The WhatsApp Business Account ID. */ wabaId?: string | null; } /** * A chunk of content within a message. */ export interface Schema$Chunk { /** * Optional. Agent transfer event. */ agentTransfer?: Schema$AgentTransfer; /** * Optional. Blob data. */ blob?: Schema$Blob; /** * A struct represents default variables at the start of the conversation, keyed by variable names. */ defaultVariables?: { [key: string]: any; } | null; /** * Optional. Image data. */ image?: Schema$Image; /** * Optional. Custom payload data. */ payload?: { [key: string]: any; } | null; /** * Optional. Text data. */ text?: string | null; /** * Optional. Tool execution request. */ toolCall?: Schema$ToolCall; /** * Optional. Tool execution response. */ toolResponse?: Schema$ToolResponse; /** * Optional. Transcript associated with the audio. */ transcript?: string | null; /** * A struct represents variables that were updated in the conversation, keyed by variable names. */ updatedVariables?: { [key: string]: any; } | null; } /** * Citations associated with the agent response. */ export interface Schema$Citations { /** * List of cited pieces of information. */ citedChunks?: Schema$CitationsCitedChunk[]; } /** * Piece of cited information. */ export interface Schema$CitationsCitedChunk { /** * Whether this citation requires attribution to be shown to the end users. */ requiresAttribution?: boolean | null; /** * Text used for citation. */ text?: string | null; /** * Title of the cited document. */ title?: string | null; /** * URI used for citation. */ uri?: string | null; } /** * Settings for custom client certificates. */ export interface Schema$ClientCertificateSettings { /** * 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\}` */ passphrase?: string | null; /** * Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project\}/secrets/{secret\}/versions/{version\}` */ privateKey?: string | null; /** * Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines. */ tlsCertificate?: string | null; } /** * 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. */ export interface Schema$ClientFunction { /** * Optional. The function description. */ description?: string | null; /** * Required. The function name. */ name?: string | null; /** * Optional. The schema of the function parameters. */ parameters?: Schema$Schema; /** * Optional. The