Returns the agents Resource.
Returns the changelogs Resource.
Returns the conversations Resource.
Returns the deployments Resource.
Returns the examples Resource.
Returns the guardrails Resource.
Returns the message Resource.
Returns the sessions Resource.
Returns the tools Resource.
Returns the toolsets Resource.
Returns the versions Resource.
Close httplib2 connections.
create(parent, appId=None, body=None, x__xgafv=None)
Creates a new app in the given project and location.
delete(name, etag=None, x__xgafv=None)
Deletes the specified app.
executeTool(parent, body=None, x__xgafv=None)
Executes the given tool with the given arguments.
exportApp(name, body=None, x__xgafv=None)
Exports the specified app.
Gets details of the specified app.
getExtendedAgentCard(tenant, x__xgafv=None)
Gets the extended agent card for the authenticated agent.
importApp(parent, body=None, x__xgafv=None)
Imports the specified app.
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Lists apps in the given project and location.
Retrieves the next page of results.
patch(name, body=None, updateMask=None, x__xgafv=None)
Updates the specified app.
retrieveToolSchema(parent, body=None, x__xgafv=None)
Retrieve the schema of the given tool. The schema is computed on the fly for the given instance of the tool.
close()
Close httplib2 connections.
create(parent, appId=None, body=None, x__xgafv=None)
Creates a new app in the given project and location.
Args:
parent: string, Required. The resource name of the location to create an app in. (required)
body: object, The request body.
The object takes the form of:
{ # 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.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A 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": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # 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.
},
"inactivityTimeout": "A String", # 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": { # 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"consentAudioGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the consent audio for voice cloning.
"instruction": "A String", # Optional. The instruction used to synthesize speech when using a generative model.
"model": "A String", # Optional. The model used to synthesize audio. Currently supported values: - "gemini-3.1-flash-tts-preview" If empty, Chirp3-HD is used.
"speakingRate": 3.14, # Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error.
"voice": "A String", # Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
"voiceSampleGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the audio sample for voice cloning. The audio sample should be a mono-channel, 24kHz WAV file. 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.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A 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}`
"privateKey": "A 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": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"instagramConfig": { # Configuration specific to Instagram deployments. # Optional. Configuration specific to Instagram deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"instagramAccountId": "A String", # Required. The Instagram Account ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
},
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"allowedOrigins": [ # 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"
"A String",
],
"enableOriginCheck": True or False, # 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.
"enablePublicAccess": True or False, # 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": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
"whatsappConfig": { # Configuration specific to WhatsApp deployments. # Optional. Configuration specific to WhatsApp deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"phoneNumber": "A String", # Optional. The phone number in E.164 format.
"phoneNumberId": "A String", # Required. The Meta phone number ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
"wabaId": "A String", # Required. The WhatsApp Business Account ID.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # 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.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # 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).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"globalInstruction": "A 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.
"guardrails": [ # Optional. List of guardrails for the app. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A 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.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded. The audio is subject to redaction as configured in RedactionConfig.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The conversation data is subject to redaction as configured in RedactionConfig.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A 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": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A 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}`
},
"unredactedAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configures an additional recording of unredacted audio. This can be used to maintain a raw audio copy when audio redaction is enabled, typically for auditing or monitoring purposes.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"unredactedBigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The unredacted conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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`.
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A 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": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"validationErrors": [ # Output only. Misconfigurations or warnings in the app.
"A String",
],
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"vpcScSettings": { # VPC-SC settings for the app. # Optional. VPC-SC settings for the app.
"allowedOrigins": [ # 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.
"A String",
],
},
}
appId: string, Optional. The ID to use for the app, which will become the final component of the app's resource name. If not provided, a unique ID will be automatically assigned for the app.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
delete(name, etag=None, x__xgafv=None)
Deletes the specified app.
Args:
name: string, Required. The resource name of the app to delete. (required)
etag: string, Optional. The current etag of the app. If an etag is not provided, the deletion will overwrite any concurrent changes. If an etag is provided and does not match the current etag of the app, deletion will be blocked and an ABORTED error will be returned.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
executeTool(parent, body=None, x__xgafv=None)
Executes the given tool with the given arguments.
Args:
parent: string, Required. The resource name of the app which the tool/toolset belongs to. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # Request message for ToolService.ExecuteTool.
"args": { # Optional. The input parameters and values for the tool in JSON object format.
"a_key": "", # Properties of the object.
},
"context": { # Optional. The [ToolCallContext](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/python#environment for details) to be passed to the Python tool.
"a_key": "", # Properties of the object.
},
"mockConfig": { # Mock tool calls configuration for the session. # Optional. Mock configuration for the tool execution. If this field is set, tools that call other tools will be mocked based on the provided patterns and responses.
"mockedToolCalls": [ # Optional. All tool calls to mock for the duration of the session.
{ # A mocked tool call. Expresses the target tool + a pattern to match against that tool's args / inputs. If the pattern matches, then the mock response will be returned.
"expectedArgsPattern": { # Required. A pattern to match against the args / inputs of all dispatched tool calls. If the tool call inputs match this pattern, then mock output will be returned.
"a_key": "", # Properties of the object.
},
"mockResponse": { # Optional. The mock response / output to return if the tool call args / inputs match the pattern.
"a_key": "", # Properties of the object.
},
"tool": "A String", # Optional. Deprecated. Use tool_identifier instead.
"toolId": "A String", # Optional. The name of the tool to mock. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
"toolset": { # A tool that is created from a toolset. # Optional. The toolset to mock.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
},
],
"unmatchedToolCallBehavior": "A String", # Required. Beavhior for tool calls that don't match any args patterns in mocked_tool_calls.
},
"tool": "A String", # Optional. The name of the tool to execute. Format: projects/{project}/locations/{location}/apps/{app}/tools/{tool}
"toolsetTool": { # A tool that is created from a toolset. # Optional. The toolset tool to execute. Only one tool should match the predicate from the toolset. Otherwise, an error will be returned.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
"variables": { # Optional. The variables that are available for the tool execution.
"a_key": "", # Properties of the object.
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for ToolService.ExecuteTool.
"citations": { # Citations associated with the agent response. # Citations that provide the source information for the tool's execution.
"citedChunks": [ # List of cited pieces of information.
{ # Piece of cited information.
"requiresAttribution": True or False, # Whether this citation requires attribution to be shown to the end users.
"text": "A String", # Text used for citation.
"title": "A String", # Title of the cited document.
"uri": "A String", # URI used for citation.
},
],
},
"googleSearchSuggestions": { # Search suggestions from Google Search Tool. # The suggestions returned from Google Search as a result of invoking the Google Search Tool during the tool execution.
"htmls": [ # Compliant HTML and CSS styling for search suggestions. The provided HTML and CSS automatically adapts to your device settings, displaying in either light or dark mode indicated by `@media(prefers-color-scheme)`.
"A String",
],
"webSearchQueries": [ # List of queries used to perform the google search along with the search result URIs forming the search suggestions.
{ # Represents a single web search query and its associated search uri.
"query": "A String", # The search query text.
"uri": "A String", # The URI to the Google Search results page for the query.
},
],
},
"response": { # 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.
"a_key": "", # Properties of the object.
},
"tool": "A String", # The name of the tool that got executed. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
"toolsetTool": { # A tool that is created from a toolset. # The toolset tool that got executed.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
"variables": { # The variable values at the end of the tool execution.
"a_key": "", # Properties of the object.
},
}
exportApp(name, body=None, x__xgafv=None)
Exports the specified app.
Args:
name: string, Required. The resource name of the app to export. (required)
body: object, The request body.
The object takes the form of:
{ # Request message for AgentService.ExportApp.
"appVersion": "A String", # Optional. The resource name of the app version to export. Format: `projects/{project}/locations/{location}/apps/{app}/versions/{version}`.
"exportFormat": "A String", # Required. The format to export the app in.
"gcsUri": "A String", # Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to which to export the app. The format of this URI must be `gs:///`. The exported app archive will be written directly to the specified GCS object.
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
get(name, x__xgafv=None)
Gets details of the specified app.
Args:
name: string, Required. The resource name of the app to retrieve. (required)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # 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.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A 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": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # 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.
},
"inactivityTimeout": "A String", # 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": { # 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"consentAudioGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the consent audio for voice cloning.
"instruction": "A String", # Optional. The instruction used to synthesize speech when using a generative model.
"model": "A String", # Optional. The model used to synthesize audio. Currently supported values: - "gemini-3.1-flash-tts-preview" If empty, Chirp3-HD is used.
"speakingRate": 3.14, # Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error.
"voice": "A String", # Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
"voiceSampleGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the audio sample for voice cloning. The audio sample should be a mono-channel, 24kHz WAV file. 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.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A 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}`
"privateKey": "A 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": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"instagramConfig": { # Configuration specific to Instagram deployments. # Optional. Configuration specific to Instagram deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"instagramAccountId": "A String", # Required. The Instagram Account ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
},
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"allowedOrigins": [ # 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"
"A String",
],
"enableOriginCheck": True or False, # 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.
"enablePublicAccess": True or False, # 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": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
"whatsappConfig": { # Configuration specific to WhatsApp deployments. # Optional. Configuration specific to WhatsApp deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"phoneNumber": "A String", # Optional. The phone number in E.164 format.
"phoneNumberId": "A String", # Required. The Meta phone number ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
"wabaId": "A String", # Required. The WhatsApp Business Account ID.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # 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.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # 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).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"globalInstruction": "A 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.
"guardrails": [ # Optional. List of guardrails for the app. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A 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.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded. The audio is subject to redaction as configured in RedactionConfig.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The conversation data is subject to redaction as configured in RedactionConfig.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A 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": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A 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}`
},
"unredactedAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configures an additional recording of unredacted audio. This can be used to maintain a raw audio copy when audio redaction is enabled, typically for auditing or monitoring purposes.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"unredactedBigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The unredacted conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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`.
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A 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": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"validationErrors": [ # Output only. Misconfigurations or warnings in the app.
"A String",
],
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"vpcScSettings": { # VPC-SC settings for the app. # Optional. VPC-SC settings for the app.
"allowedOrigins": [ # 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.
"A String",
],
},
}
getExtendedAgentCard(tenant, x__xgafv=None)
Gets the extended agent card for the authenticated agent.
Args:
tenant: string, Optional. Opaque routing identifier. Must match the `tenant` value from the selected `AgentInterface` in the Agent Card when that field is set. (required)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # A self-describing manifest for an agent. It provides essential metadata including the agent's identity, capabilities, skills, supported communication methods, and security requirements. Next ID: 20
"capabilities": { # Defines optional capabilities supported by an agent. # Required. A2A Capability set supported by the agent.
"extendedAgentCard": True or False, # Indicates if the agent supports providing an extended agent card when authenticated.
"extensions": [ # A list of protocol extensions supported by the agent.
{ # A declaration of a protocol extension supported by an Agent.
"description": "A String", # A human-readable description of how this agent uses the extension.
"params": { # Optional. Extension-specific configuration parameters.
"a_key": "", # Properties of the object.
},
"required": True or False, # If true, the client must understand and comply with the extension's requirements.
"uri": "A String", # The unique URI identifying the extension.
},
],
"pushNotifications": True or False, # Indicates if the agent supports sending push notifications for asynchronous task updates.
"streaming": True or False, # Indicates if the agent supports streaming responses.
},
"defaultInputModes": [ # Required. protolint:enable REPEATED_FIELD_NAMES_PLURALIZED The set of interaction modes that the agent supports across all skills. This can be overridden per skill. Defined as media types.
"A String",
],
"defaultOutputModes": [ # Required. The media types supported as outputs from this agent.
"A String",
],
"description": "A String", # Required. A human-readable description of the agent, assisting users and other agents in understanding its purpose. Example: "Agent that helps users with recipes and cooking."
"documentationUrl": "A String", # A URL providing additional documentation about the agent.
"iconUrl": "A String", # Optional. A URL to an icon for the agent.
"name": "A String", # Required. A human readable name for the agent. Example: "Recipe Agent"
"provider": { # Represents the service provider of an agent. # The service provider of the agent.
"organization": "A String", # Required. The name of the agent provider's organization. Example: "Google"
"url": "A String", # Required. A URL for the agent provider's website or relevant documentation. Example: "https://ai.google.dev"
},
"securityRequirements": [ # Security requirements for contacting the agent.
{ # Defines the security requirements for an agent.
"schemes": { # A map of security schemes to the required scopes.
"a_key": { # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED A list of strings.
"list": [ # The individual string values.
"A String",
],
},
},
},
],
"securitySchemes": { # The security scheme details used for authenticating with this agent.
"a_key": { # Defines a security scheme that can be used to secure an agent's endpoints. This is a discriminated union type based on the OpenAPI 3.2 Security Scheme Object. See: https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object
"apiKeySecurityScheme": { # Defines a security scheme using an API key. # API key-based authentication.
"description": "A String", # An optional description for the security scheme.
"location": "A String", # Required. The location of the API key. Valid values are "query", "header", or "cookie".
"name": "A String", # Required. The name of the header, query, or cookie parameter to be used.
},
"httpAuthSecurityScheme": { # Defines a security scheme using HTTP authentication. # HTTP authentication (Basic, Bearer, etc.).
"bearerFormat": "A String", # A hint to the client to identify how the bearer token is formatted (e.g., "JWT"). Primarily for documentation purposes.
"description": "A String", # An optional description for the security scheme.
"scheme": "A String", # Required. The name of the HTTP Authentication scheme to be used in the Authorization header, as defined in RFC7235 (e.g., "Bearer"). This value should be registered in the IANA Authentication Scheme registry.
},
"mtlsSecurityScheme": { # Defines a security scheme using mTLS authentication. # Mutual TLS authentication.
"description": "A String", # An optional description for the security scheme.
},
"oauth2SecurityScheme": { # Defines a security scheme using OAuth 2.0. # OAuth 2.0 authentication.
"description": "A String", # An optional description for the security scheme.
"flows": { # Defines the configuration for the supported OAuth 2.0 flows. # Required. An object containing configuration information for the supported OAuth 2.0 flows.
"authorizationCode": { # Defines configuration details for the OAuth 2.0 Authorization Code flow. # Configuration for the OAuth Authorization Code flow.
"authorizationUrl": "A String", # Required. The authorization URL to be used for this flow.
"pkceRequired": True or False, # Indicates if PKCE (RFC 7636) is required for this flow. PKCE should always be used for public clients and is recommended for all clients.
"refreshUrl": "A String", # The URL to be used for obtaining refresh tokens.
"scopes": { # Required. The available scopes for the OAuth2 security scheme.
"a_key": "A String",
},
"tokenUrl": "A String", # Required. The token URL to be used for this flow.
},
"clientCredentials": { # Defines configuration details for the OAuth 2.0 Client Credentials flow. # Configuration for the OAuth Client Credentials flow.
"refreshUrl": "A String", # The URL to be used for obtaining refresh tokens.
"scopes": { # Required. The available scopes for the OAuth2 security scheme.
"a_key": "A String",
},
"tokenUrl": "A String", # Required. The token URL to be used for this flow.
},
"deviceCode": { # Defines configuration details for the OAuth 2.0 Device Code flow (RFC 8628). This flow is designed for input-constrained devices such as IoT devices, and CLI tools where the user authenticates on a separate device. # Configuration for the OAuth Device Code flow.
"deviceAuthorizationUrl": "A String", # Required. The device authorization endpoint URL.
"refreshUrl": "A String", # The URL to be used for obtaining refresh tokens.
"scopes": { # Required. The available scopes for the OAuth2 security scheme.
"a_key": "A String",
},
"tokenUrl": "A String", # Required. The token URL to be used for this flow.
},
"implicit": { # Deprecated: Use Authorization Code + PKCE instead. # Deprecated: Use Authorization Code + PKCE instead.
"authorizationUrl": "A String", # The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS
"refreshUrl": "A String", # The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
"scopes": { # The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.
"a_key": "A String",
},
},
"password": { # Deprecated: Use Authorization Code + PKCE or Device Code. # Deprecated: Use Authorization Code + PKCE or Device Code.
"refreshUrl": "A String", # The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
"scopes": { # The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.
"a_key": "A String",
},
"tokenUrl": "A String", # The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
},
},
"oauth2MetadataUrl": "A String", # URL to the OAuth2 authorization server metadata [RFC 8414](https://datatracker.ietf.org/doc/html/rfc8414). TLS is required.
},
"openIdConnectSecurityScheme": { # Defines a security scheme using OpenID Connect. # OpenID Connect authentication.
"description": "A String", # An optional description for the security scheme.
"openIdConnectUrl": "A String", # Required. The [OpenID Connect Discovery URL](https://openid.net/specs/openid-connect-discovery-1_0.html) for the OIDC provider's metadata.
},
},
},
"signatures": [ # JSON Web Signatures computed for this `AgentCard`.
{ # AgentCardSignature represents a JWS signature of an AgentCard. This follows the JSON format of an RFC 7515 JSON Web Signature (JWS).
"header": { # The unprotected JWS header values.
"a_key": "", # Properties of the object.
},
"protected": "A String", # Required. Required. The protected JWS header for the signature. This is always a base64url-encoded JSON object.
"signature": "A String", # Required. The computed signature, base64url-encoded.
},
],
"skills": [ # Required. Skills represent the abilities of an agent. It is largely a descriptive concept but represents a more focused set of behaviors that the agent is likely to succeed at.
{ # Represents a distinct capability or function that an agent can perform.
"description": "A String", # Required. A detailed description of the skill.
"examples": [ # Example prompts or scenarios that this skill can handle.
"A String",
],
"id": "A String", # Required. A unique identifier for the agent's skill.
"inputModes": [ # The set of supported input media types for this skill, overriding the agent's defaults.
"A String",
],
"name": "A String", # Required. A human-readable name for the skill.
"outputModes": [ # The set of supported output media types for this skill, overriding the agent's defaults.
"A String",
],
"securityRequirements": [ # Security schemes necessary for this skill.
{ # Defines the security requirements for an agent.
"schemes": { # A map of security schemes to the required scopes.
"a_key": { # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED A list of strings.
"list": [ # The individual string values.
"A String",
],
},
},
},
],
"tags": [ # Required. A set of keywords describing the skill's capabilities.
"A String",
],
},
],
"supportedInterfaces": [ # Required. Ordered list of supported interfaces. The first entry is preferred.
{ # 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.
"protocolBinding": "A 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`.
"protocolVersion": "A 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"
"tenant": "A String", # Optional. An opaque string used for routing requests to a specific agent or tenant when multiple agents are served behind a single A2A endpoint. When set, clients MUST include this value in the `tenant` field of all request messages sent to this interface. The server is responsible for interpreting the value and routing requests accordingly; the protocol does not define its format or semantics.
"url": "A 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"
},
],
"version": "A String", # Required. The version of the agent. Example: "1.0.0"
}
importApp(parent, body=None, x__xgafv=None)
Imports the specified app.
Args:
parent: string, Required. The parent resource name with the location of the app to import. (required)
body: object, The request body.
The object takes the form of:
{ # Request message for AgentService.ImportApp.
"appContent": "A String", # Raw bytes representing the compressed zip file with the app folder structure.
"appId": "A String", # Optional. The ID to use for the imported app. * If not specified, a unique ID will be automatically assigned for the app. * Otherwise, the imported app will use this ID as the final component of its resource name. If an app with the same ID already exists at the specified location in the project, the content of the existing app will be replaced.
"displayName": "A String", # Optional. The display name of the app to import. * If the app is created on import, and the display name is specified, the imported app will use this display name. If a conflict is detected with an existing app, a timestamp will be appended to the display name to make it unique. * If the app is a reimport, this field should not be set. Providing a display name during reimport will result in an INVALID_ARGUMENT error.
"gcsUri": "A String", # The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI from which to import app. The format of this URI must be `gs:///`.
"ignoreAppLock": True or False, # Optional. Flag for overriding the app lock during import. If set to true, the import process will ignore the app lock.
"importOptions": { # Configuration options for the app import process. These options control how the import behaves, particularly when conflicts arise with existing app data. # Optional. Options governing the import process for the app.
"conflictResolutionStrategy": "A String", # Optional. The strategy to use when resolving conflicts during import.
"validateOnly": True or False, # Optional. Flag for dry-running the import process. If set to true, the import process will only perform validations and will not make any changes to the existing app or create a new one.
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Lists apps in the given project and location.
Args:
parent: string, Required. The resource name of the location to list apps from. (required)
filter: string, Optional. Filter to be applied when listing the apps. See https://google.aip.dev/160 for more details.
orderBy: string, Optional. Field to sort by. Only "name" and "create_time" is supported. See https://google.aip.dev/132#ordering for more details.
pageSize: integer, Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.
pageToken: string, Optional. The next_page_token value returned from a previous list AgentService.ListApps call.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for AgentService.ListApps.
"apps": [ # The list of apps.
{ # 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.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A 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": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # 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.
},
"inactivityTimeout": "A String", # 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": { # 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"consentAudioGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the consent audio for voice cloning.
"instruction": "A String", # Optional. The instruction used to synthesize speech when using a generative model.
"model": "A String", # Optional. The model used to synthesize audio. Currently supported values: - "gemini-3.1-flash-tts-preview" If empty, Chirp3-HD is used.
"speakingRate": 3.14, # Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error.
"voice": "A String", # Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
"voiceSampleGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the audio sample for voice cloning. The audio sample should be a mono-channel, 24kHz WAV file. 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.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A 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}`
"privateKey": "A 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": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"instagramConfig": { # Configuration specific to Instagram deployments. # Optional. Configuration specific to Instagram deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"instagramAccountId": "A String", # Required. The Instagram Account ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
},
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"allowedOrigins": [ # 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"
"A String",
],
"enableOriginCheck": True or False, # 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.
"enablePublicAccess": True or False, # 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": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
"whatsappConfig": { # Configuration specific to WhatsApp deployments. # Optional. Configuration specific to WhatsApp deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"phoneNumber": "A String", # Optional. The phone number in E.164 format.
"phoneNumberId": "A String", # Required. The Meta phone number ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
"wabaId": "A String", # Required. The WhatsApp Business Account ID.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # 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.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # 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).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"globalInstruction": "A 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.
"guardrails": [ # Optional. List of guardrails for the app. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A 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.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded. The audio is subject to redaction as configured in RedactionConfig.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The conversation data is subject to redaction as configured in RedactionConfig.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A 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": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A 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}`
},
"unredactedAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configures an additional recording of unredacted audio. This can be used to maintain a raw audio copy when audio redaction is enabled, typically for auditing or monitoring purposes.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"unredactedBigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The unredacted conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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`.
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A 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": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"validationErrors": [ # Output only. Misconfigurations or warnings in the app.
"A String",
],
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"vpcScSettings": { # VPC-SC settings for the app. # Optional. VPC-SC settings for the app.
"allowedOrigins": [ # 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.
"A String",
],
},
},
],
"nextPageToken": "A String", # A token that can be sent as ListAppsRequest.page_token to retrieve the next page. Absence of this field indicates there are no subsequent pages.
"unreachable": [ # Unordered list. Locations that could not be reached.
"A String",
],
}
list_next()
Retrieves the next page of results.
Args:
previous_request: The request for the previous page. (required)
previous_response: The response from the request for the previous page. (required)
Returns:
A request object that you can call 'execute()' on to request the next
page. Returns None if there are no more items in the collection.
patch(name, body=None, updateMask=None, x__xgafv=None)
Updates the specified app.
Args:
name: string, Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # 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.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A 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": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # 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.
},
"inactivityTimeout": "A String", # 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": { # 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"consentAudioGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the consent audio for voice cloning.
"instruction": "A String", # Optional. The instruction used to synthesize speech when using a generative model.
"model": "A String", # Optional. The model used to synthesize audio. Currently supported values: - "gemini-3.1-flash-tts-preview" If empty, Chirp3-HD is used.
"speakingRate": 3.14, # Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error.
"voice": "A String", # Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
"voiceSampleGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the audio sample for voice cloning. The audio sample should be a mono-channel, 24kHz WAV file. 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.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A 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}`
"privateKey": "A 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": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"instagramConfig": { # Configuration specific to Instagram deployments. # Optional. Configuration specific to Instagram deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"instagramAccountId": "A String", # Required. The Instagram Account ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
},
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"allowedOrigins": [ # 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"
"A String",
],
"enableOriginCheck": True or False, # 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.
"enablePublicAccess": True or False, # 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": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
"whatsappConfig": { # Configuration specific to WhatsApp deployments. # Optional. Configuration specific to WhatsApp deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"phoneNumber": "A String", # Optional. The phone number in E.164 format.
"phoneNumberId": "A String", # Required. The Meta phone number ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
"wabaId": "A String", # Required. The WhatsApp Business Account ID.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # 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.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # 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).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"globalInstruction": "A 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.
"guardrails": [ # Optional. List of guardrails for the app. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A 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.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded. The audio is subject to redaction as configured in RedactionConfig.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The conversation data is subject to redaction as configured in RedactionConfig.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A 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": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A 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}`
},
"unredactedAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configures an additional recording of unredacted audio. This can be used to maintain a raw audio copy when audio redaction is enabled, typically for auditing or monitoring purposes.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"unredactedBigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The unredacted conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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`.
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A 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": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"validationErrors": [ # Output only. Misconfigurations or warnings in the app.
"A String",
],
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"vpcScSettings": { # VPC-SC settings for the app. # Optional. VPC-SC settings for the app.
"allowedOrigins": [ # 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.
"A String",
],
},
}
updateMask: string, Optional. Field mask is used to control which fields get updated. If the mask is not present, all fields will be updated.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # 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.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A 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": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # 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.
},
"inactivityTimeout": "A String", # 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": { # 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"consentAudioGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the consent audio for voice cloning.
"instruction": "A String", # Optional. The instruction used to synthesize speech when using a generative model.
"model": "A String", # Optional. The model used to synthesize audio. Currently supported values: - "gemini-3.1-flash-tts-preview" If empty, Chirp3-HD is used.
"speakingRate": 3.14, # Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error.
"voice": "A String", # Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
"voiceSampleGcsUri": "A String", # Optional. Deprecated: Use `custom_voice_samples` in AudioProcessingConfig instead. The Cloud Storage URI to the audio sample for voice cloning. The audio sample should be a mono-channel, 24kHz WAV file. 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.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A 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}`
"privateKey": "A 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": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"instagramConfig": { # Configuration specific to Instagram deployments. # Optional. Configuration specific to Instagram deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"instagramAccountId": "A String", # Required. The Instagram Account ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
},
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"allowedOrigins": [ # 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"
"A String",
],
"enableOriginCheck": True or False, # 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.
"enablePublicAccess": True or False, # 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": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
"whatsappConfig": { # Configuration specific to WhatsApp deployments. # Optional. Configuration specific to WhatsApp deployments.
"description": "A String", # Output only. The description of the Meta business page or profile.
"displayName": "A String", # Output only. The fetched Meta business page name.
"phoneNumber": "A String", # Optional. The phone number in E.164 format.
"phoneNumberId": "A String", # Required. The Meta phone number ID.
"thumbnailUrl": "A String", # Output only. The fetched Meta business profile thumbnail URL.
"wabaId": "A String", # Required. The WhatsApp Business Account ID.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # 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.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # 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).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"globalInstruction": "A 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.
"guardrails": [ # Optional. List of guardrails for the app. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A 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.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded. The audio is subject to redaction as configured in RedactionConfig.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The conversation data is subject to redaction as configured in RedactionConfig.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A 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": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A 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}`
},
"unredactedAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configures an additional recording of unredacted audio. This can be used to maintain a raw audio copy when audio redaction is enabled, typically for auditing or monitoring purposes.
"gcsBucket": "A 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`.
"gcsPathPrefix": "A 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.
},
"unredactedBigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Configures the BigQuery export behaviors for the app. The unredacted conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A 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`.
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A 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": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"validationErrors": [ # Output only. Misconfigurations or warnings in the app.
"A String",
],
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"vpcScSettings": { # VPC-SC settings for the app. # Optional. VPC-SC settings for the app.
"allowedOrigins": [ # 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.
"A String",
],
},
}
retrieveToolSchema(parent, body=None, x__xgafv=None)
Retrieve the schema of the given tool. The schema is computed on the fly for the given instance of the tool.
Args:
parent: string, Required. The resource name of the app which the tool/toolset belongs to. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # Request message for ToolService.RetrieveToolSchema.
"tool": "A String", # Optional. The name of the tool to retrieve the schema for. Format: projects/{project}/locations/{location}/apps/{app}/tools/{tool}
"toolsetTool": { # A tool that is created from a toolset. # Optional. The toolset tool to retrieve the schema for. Only one tool should match the predicate from the toolset. Otherwise, an error will be returned.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for ToolService.RetrieveToolSchema.
"inputSchema": { # Represents a select subset of an OpenAPI 3.0 schema object. # The schema of the tool input parameters.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"outputSchema": { # Represents a select subset of an OpenAPI 3.0 schema object. # The schema of the tool output parameters.
"additionalProperties": # Object with schema name: Schema # Optional. Can either be a boolean or an object, controls the presence of additional properties.
"anyOf": [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"enum": [ # 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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"tool": "A String", # The name of the tool that the schema is for. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
"toolsetTool": { # A tool that is created from a toolset. # The toolset tool that the schema is for.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
}