googleapis/google/cloud/ces/v1/app.proto
Google APIs ffe6fc5c48 feat: update public libraries for CES v1
docs: A comment for field `fallback_action` in message `.google.cloud.ces.v1.LanguageSettings` is changed
docs: A comment for field `project` in message `.google.cloud.ces.v1.BigQueryExportSettings` is changed
docs: A comment for field `dataset` in message `.google.cloud.ces.v1.BigQueryExportSettings` is changed
docs: A comment for field `cert` in message `.google.cloud.ces.v1.TlsConfig` is changed
docs: A comment for field `name` in message `.google.cloud.ces.v1.Deployment` is changed
docs: A comment for field `app_version` in message `.google.cloud.ces.v1.Deployment` is changed
docs: A comment for method `RunSession` in service `SessionService` is changed
docs: A comment for field `entry_agent` in message `.google.cloud.ces.v1.SessionConfig` is changed
docs: A comment for field `will_continue` in message `.google.cloud.ces.v1.SessionInput` is changed
docs: A comment for field `interruption_signal` in message `.google.cloud.ces.v1.BidiSessionServerMessage` is changed
docs: A comment for field `name` in message `.google.cloud.ces.v1.Tool` is changed
docs: A comment for field `response` in message `.google.cloud.ces.v1.ExecuteToolResponse` is changed
docs: A comment for field `input_schema` in message `.google.cloud.ces.v1.RetrieveToolSchemaResponse` is changed
docs: A comment for field `output_schema` in message `.google.cloud.ces.v1.RetrieveToolSchemaResponse` is changed
docs: A comment for field `tools` in message `.google.cloud.ces.v1.RetrieveToolsResponse` is changed

PiperOrigin-RevId: 888197844
2026-03-23 11:33:07 -07:00

683 lines
27 KiB
Protocol Buffer

// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.ces.v1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/ces/v1/bigquery_export.proto";
import "google/cloud/ces/v1/common.proto";
import "google/cloud/ces/v1/schema.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
option go_package = "cloud.google.com/go/ces/apiv1/cespb;cespb";
option java_multiple_files = true;
option java_outer_classname = "AppProto";
option java_package = "com.google.cloud.ces.v1";
option (google.api.resource_definition) = {
type: "dlp.googleapis.com/InspectTemplate"
pattern: "organizations/{organization}/locations/{location}/inspectTemplates/{inspect_template}"
pattern: "projects/{project}/locations/{location}/inspectTemplates/{inspect_template}"
};
option (google.api.resource_definition) = {
type: "dlp.googleapis.com/DeidentifyTemplate"
pattern: "organizations/{organization}/locations/{location}/deidentifyTemplates/{deidentify_template}"
pattern: "projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}"
};
option (google.api.resource_definition) = {
type: "discoveryengine.googleapis.com/Engine"
pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}"
};
// 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.
message App {
option (google.api.resource) = {
type: "ces.googleapis.com/App"
pattern: "projects/{project}/locations/{location}/apps/{app}"
plural: "apps"
singular: "app"
};
// Defines the structure and metadata for a variable.
message VariableDeclaration {
// Required. The name of the variable. The name must start with a letter or
// underscore and contain only letters, numbers, or underscores.
string name = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The description of the variable.
string description = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The schema of the variable.
Schema schema = 3 [(google.api.field_behavior) = REQUIRED];
}
// Defines the tool execution behavior if there are **multiple** tools being
// selected by the agent **at the same time**.
enum ToolExecutionMode {
// Unspecified tool execution mode. Default to PARALLEL.
TOOL_EXECUTION_MODE_UNSPECIFIED = 0;
// If there are multiple tools being selected, they will be executed in
// parallel, with the same
// [ToolContext](https://google.github.io/adk-docs/context/#the-different-types-of-context).
PARALLEL = 1;
// If there are multiple tools being selected, they will be executed
// sequentially. The next tool will only be executed after the previous tool
// completes and it can see updated
// [ToolContext](https://google.github.io/adk-docs/context/#the-different-types-of-context)
// from the previous tool.
SEQUENTIAL = 2;
}
// Identifier. The unique identifier of the app.
// Format: `projects/{project}/locations/{location}/apps/{app}`
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Required. Display name of the app.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. Human-readable description of the app.
string description = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Whether the app is pinned in the app list.
bool pinned = 31 [(google.api.field_behavior) = OPTIONAL];
// Optional. The root agent is the entry point of the app.
// Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
string root_agent = 4 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = { type: "ces.googleapis.com/Agent" }
];
// Optional. Language settings of the app.
LanguageSettings language_settings = 18
[(google.api.field_behavior) = OPTIONAL];
// Optional. TimeZone settings of the app.
TimeZoneSettings time_zone_settings = 27
[(google.api.field_behavior) = OPTIONAL];
// Optional. Audio processing configuration of the app.
AudioProcessingConfig audio_processing_config = 7
[(google.api.field_behavior) = OPTIONAL];
// Optional. Logging settings of the app.
LoggingSettings logging_settings = 8 [(google.api.field_behavior) = OPTIONAL];
// Optional. Error handling settings of the app.
ErrorHandlingSettings error_handling_settings = 34
[(google.api.field_behavior) = OPTIONAL];
// Optional. The default LLM model settings for the app.
// Individual resources (e.g. agents, guardrails) can override these
// configurations as needed.
ModelSettings model_settings = 13 [(google.api.field_behavior) = OPTIONAL];
// Optional. The tool execution mode for the app. If not provided, will
// default to PARALLEL.
ToolExecutionMode tool_execution_mode = 32
[(google.api.field_behavior) = OPTIONAL];
// Optional. The evaluation thresholds for the app.
EvaluationMetricsThresholds evaluation_metrics_thresholds = 24
[(google.api.field_behavior) = OPTIONAL];
// Optional. The declarations of the variables.
repeated VariableDeclaration variable_declarations = 14
[(google.api.field_behavior) = OPTIONAL];
// Output only. The declarations of predefined variables for the app.
repeated VariableDeclaration predefined_variable_declarations = 28
[(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
string global_instruction = 17 [(google.api.field_behavior) = OPTIONAL];
// Optional. List of guardrails for the app.
// Format:
// `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
repeated string guardrails = 10 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = { type: "ces.googleapis.com/Guardrail" }
];
// Optional. The data store settings for the app.
DataStoreSettings data_store_settings = 15
[(google.api.field_behavior) = OPTIONAL];
// Optional. The default channel profile used by the app.
ChannelProfile default_channel_profile = 22
[(google.api.field_behavior) = OPTIONAL];
// Optional. Metadata about the app. This field can be used to store
// additional information relevant to the app's details or intended usages.
map<string, string> metadata = 11 [(google.api.field_behavior) = OPTIONAL];
// Output only. Timestamp when the app was created.
google.protobuf.Timestamp create_time = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when the app was last updated.
google.protobuf.Timestamp update_time = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
string etag = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Number of deployments in the app.
int32 deployment_count = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The default client certificate settings for the app.
ClientCertificateSettings client_certificate_settings = 25
[(google.api.field_behavior) = OPTIONAL];
// Optional. Indicates whether the app is locked for changes. If the app is
// locked, modifications to the app resources will be rejected.
bool locked = 29 [(google.api.field_behavior) = OPTIONAL];
}
// TimeZone settings of the app.
message TimeZoneSettings {
// 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.
string time_zone = 1 [(google.api.field_behavior) = OPTIONAL];
}
// Language settings of the app.
message LanguageSettings {
// Optional. The default language code of the app.
string default_language_code = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. List of languages codes supported by the app, in addition to the
// `default_language_code`.
repeated string supported_language_codes = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. Enables multilingual support. If true, agents in the app will use
// pre-built instructions to improve handling of multilingual input.
bool enable_multilingual_support = 3 [(google.api.field_behavior) = OPTIONAL];
// 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][google.cloud.ces.v1.EndSession] signal with corresponding
// [metadata][google.cloud.ces.v1.EndSession.metadata] to terminate the
// conversation.
string fallback_action = 4
[deprecated = true, (google.api.field_behavior) = OPTIONAL];
}
// Configuration for how the input and output audio should be processed and
// delivered.
message AudioProcessingConfig {
// Optional. Configuration of how the agent response should be synthesized,
// mapping from the language code to
// [SynthesizeSpeechConfig][google.cloud.ces.v1.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.
map<string, SynthesizeSpeechConfig> synthesize_speech_configs = 1
[(google.api.field_behavior) = OPTIONAL];
// Optional. Configures the agent behavior for the user barge-in activities.
BargeInConfig barge_in_config = 3 [(google.api.field_behavior) = OPTIONAL];
// 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.
google.protobuf.Duration inactivity_timeout = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. Configuration for the ambient sound to be played with the
// synthesized agent response, to enhance the naturalness of the conversation.
AmbientSoundConfig ambient_sound_config = 5
[(google.api.field_behavior) = OPTIONAL];
}
// Configuration for the ambient sound to be played with the synthesized agent
// response, to enhance the naturalness of the conversation.
message AmbientSoundConfig {
// Prebuilt ambient noise.
enum PrebuiltAmbientNoise {
// Not specified.
PREBUILT_AMBIENT_NOISE_UNSPECIFIED = 0;
// Ambient noise of a retail store.
RETAIL_STORE = 1;
// Ambient noise of a convention hall.
CONVENTION_HALL = 2;
// Ambient noise of a street.
OUTDOOR = 3;
}
// Ambient noise to be played with the synthesized agent response, to
// enhance the naturalness of the conversation.
oneof source {
// Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of
// `prebuilt_ambient_sound`.
PrebuiltAmbientNoise prebuilt_ambient_noise = 1
[deprecated = true, (google.api.field_behavior) = OPTIONAL];
// 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-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com` has
// `storage.objects.get` permission to the Cloud Storage object.
string gcs_uri = 2 [(google.api.field_behavior) = OPTIONAL];
// 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"
string prebuilt_ambient_sound = 4 [(google.api.field_behavior) = OPTIONAL];
}
// 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.
double volume_gain_db = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Configuration for how the user barge-in activities should be handled.
message BargeInConfig {
// Optional. Disables user barge-in while the agent is speaking. If true, user
// input during agent response playback will be ignored.
//
// Deprecated: `disable_barge_in` is deprecated in favor of
// [`disable_barge_in_control`][google.cloud.ces.v1.ChannelProfile.disable_barge_in_control]
// in ChannelProfile.
bool disable_barge_in = 1
[deprecated = true, (google.api.field_behavior) = OPTIONAL];
// 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.
bool barge_in_awareness = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Configuration for how the agent response should be synthesized.
message SynthesizeSpeechConfig {
// 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.
string voice = 1 [(google.api.field_behavior) = OPTIONAL];
// 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.
double speaking_rate = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Settings to describe the conversation data collection behaviors for LLM
// analysis metrics pipeline.
message MetricAnalysisSettings {
// 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.
bool llm_metrics_opted_out = 1 [(google.api.field_behavior) = OPTIONAL];
}
// Settings to describe the logging behaviors for the app.
message LoggingSettings {
// Optional. Configuration for how sensitive data should be redacted.
RedactionConfig redaction_config = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. Configuration for how audio interactions should be recorded.
AudioRecordingConfig audio_recording_config = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. Settings to describe the BigQuery export behaviors for the app.
// The conversation data will be exported to BigQuery tables if it is enabled.
BigQueryExportSettings bigquery_export_settings = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. Settings to describe the Cloud Logging behaviors for the app.
CloudLoggingSettings cloud_logging_settings = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. Settings to describe the conversation logging behaviors for the
// app.
ConversationLoggingSettings conversation_logging_settings = 5
[(google.api.field_behavior) = OPTIONAL];
// Optional. Configuration for how audio interactions should be recorded for
// the evaluation. By default, audio recording is not enabled for evaluation
// sessions.
AudioRecordingConfig evaluation_audio_recording_config = 6
[(google.api.field_behavior) = OPTIONAL];
// Optional. Settings to describe the conversation data collection behaviors
// for the LLM analysis pipeline for the app.
MetricAnalysisSettings metric_analysis_settings = 7
[(google.api.field_behavior) = OPTIONAL];
}
// Settings to describe how errors should be handled in the app.
message ErrorHandlingSettings {
// Defines the strategy for handling errors.
enum ErrorHandlingStrategy {
// Unspecified error handling strategy.
ERROR_HANDLING_STRATEGY_UNSPECIFIED = 0;
// No specific handling is enabled.
NONE = 1;
// A fallback message will be returned to the user in case of
// system errors (e.g. LLM errors).
FALLBACK_RESPONSE = 2;
// An [EndSession][google.cloud.ces.v1.EndSession] signal will be emitted in
// case of system errors (e.g. LLM errors).
END_SESSION = 3;
}
// Optional. The strategy to use for error handling.
ErrorHandlingStrategy error_handling_strategy = 1
[(google.api.field_behavior) = OPTIONAL];
}
// Threshold settings for metrics in an Evaluation.
message EvaluationMetricsThresholds {
// Settings for golden evaluations.
message GoldenEvaluationMetricsThresholds {
// Turn level metrics thresholds.
message TurnLevelMetricsThresholds {
// Semantic similarity channel to use.
enum SemanticSimilarityChannel {
// Metric unspecified. Defaults to TEXT.
SEMANTIC_SIMILARITY_CHANNEL_UNSPECIFIED = 0;
// Use text semantic similarity.
TEXT = 1;
// Use audio semantic similarity.
AUDIO = 2;
}
// Optional. The success threshold for semantic similarity. Must be an
// integer between 0 and 4. Default is >= 3.
optional int32 semantic_similarity_success_threshold = 1
[(google.api.field_behavior) = OPTIONAL];
// Optional. The success threshold for overall tool invocation
// correctness. Must be a float between 0 and 1. Default is 1.0.
optional float overall_tool_invocation_correctness_threshold = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. The semantic similarity channel to use for evaluation.
SemanticSimilarityChannel semantic_similarity_channel = 3
[(google.api.field_behavior) = OPTIONAL];
}
// Expectation level metrics thresholds.
message ExpectationLevelMetricsThresholds {
// Optional. The success threshold for individual tool invocation
// parameter correctness. Must be a float between 0 and 1. Default is 1.0.
optional float tool_invocation_parameter_correctness_threshold = 1
[(google.api.field_behavior) = OPTIONAL];
}
// Optional. The turn level metrics thresholds.
TurnLevelMetricsThresholds turn_level_metrics_thresholds = 1
[(google.api.field_behavior) = OPTIONAL];
// Optional. The expectation level metrics thresholds.
ExpectationLevelMetricsThresholds expectation_level_metrics_thresholds = 2
[(google.api.field_behavior) = OPTIONAL];
// 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.
ToolMatchingSettings tool_matching_settings = 3
[(google.api.field_behavior) = OPTIONAL];
}
// Settings for matching tool calls.
message ToolMatchingSettings {
// Defines the behavior when an extra tool call is encountered. 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.
enum ExtraToolCallBehavior {
// Unspecified behavior. Defaults to FAIL.
EXTRA_TOOL_CALL_BEHAVIOR_UNSPECIFIED = 0;
// Fail the evaluation if an extra tool call is encountered.
FAIL = 1;
// Allow the extra tool call.
ALLOW = 2;
}
// Optional. Behavior for extra tool calls.
// Defaults to FAIL.
ExtraToolCallBehavior extra_tool_call_behavior = 1
[(google.api.field_behavior) = OPTIONAL];
}
// The hallucination metric behavior. Regardless of the behavior, the metric
// will always be calculated. The difference is that when disabled, the
// metric is not used to calculate the overall evaluation score.
enum HallucinationMetricBehavior {
// Unspecified hallucination metric behavior.
HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED = 0;
// Disable hallucination metric.
DISABLED = 1;
// Enable hallucination metric.
ENABLED = 2;
}
// Optional. The golden evaluation metrics thresholds.
GoldenEvaluationMetricsThresholds golden_evaluation_metrics_thresholds = 1
[(google.api.field_behavior) = OPTIONAL];
// Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead.
// The hallucination metric behavior is currently used for golden evaluations.
HallucinationMetricBehavior hallucination_metric_behavior = 3
[deprecated = true, (google.api.field_behavior) = OPTIONAL];
// Optional. The hallucination metric behavior for golden evaluations.
HallucinationMetricBehavior golden_hallucination_metric_behavior = 5
[(google.api.field_behavior) = OPTIONAL];
// Optional. The hallucination metric behavior for scenario evaluations.
HallucinationMetricBehavior scenario_hallucination_metric_behavior = 4
[(google.api.field_behavior) = OPTIONAL];
}
// Settings for custom client certificates.
message ClientCertificateSettings {
// Required. The TLS certificate encoded in PEM format. This string must
// include the begin header and end footer lines.
string tls_certificate = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The name of the SecretManager secret version resource storing the
// private key encoded in PEM format.
// Format: `projects/{project}/secrets/{secret}/versions/{version}`
string private_key = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "secretmanager.googleapis.com/SecretVersion"
}
];
// 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}`
string passphrase = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Settings to describe the conversation logging behaviors for the app.
message ConversationLoggingSettings {
// Optional. Whether to disable conversation logging for the sessions.
bool disable_conversation_logging = 1
[(google.api.field_behavior) = OPTIONAL];
}
// Settings to describe the Cloud Logging behaviors for the app.
message CloudLoggingSettings {
// Optional. Whether to enable Cloud Logging for the sessions.
bool enable_cloud_logging = 1 [(google.api.field_behavior) = OPTIONAL];
}
// Configuration for how the audio interactions should be recorded.
message AudioRecordingConfig {
// Optional. The [Cloud Storage](https://cloud.google.com/storage) bucket to
// store the session audio recordings. The URI must start with "gs://".
//
// Please choose a bucket location that meets your data residency
// requirements.
//
// Note: If the Cloud Storage bucket is in a different project from the app,
// you should grant `storage.objects.create` permission to the CES service
// agent `service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com`.
string gcs_bucket = 1 [(google.api.field_behavior) = OPTIONAL];
// 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.
string gcs_path_prefix = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Configuration to instruct how sensitive data should be handled.
message RedactionConfig {
// Optional. If true, redaction will be applied in various logging scenarios,
// including conversation history, Cloud Logging and audio recording.
bool enable_redaction = 1 [(google.api.field_behavior) = OPTIONAL];
// 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}`
string inspect_template = 2 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "dlp.googleapis.com/InspectTemplate"
}
];
// 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}`
string deidentify_template = 3 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "dlp.googleapis.com/DeidentifyTemplate"
}
];
}
// Data store related settings for the app.
message DataStoreSettings {
// 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.
message Engine {
// The type of the engine.
// See the documentation available at
// https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1/SolutionType
// and
// https://cloud.google.com/generative-ai-app-builder/docs/create-datastore-ingest.
enum Type {
// Unspecified engine type.
TYPE_UNSPECIFIED = 0;
// The SOLUTION_TYPE_SEARCH engine for the app. All connector data stores
// added to the app will be added to this engine.
ENGINE_TYPE_SEARCH = 1;
// Chat engine type.
// The SOLUTION_TYPE_CHAT engine for the app. All connector data stores
// added to the app will be added to this engine.
ENGINE_TYPE_CHAT = 2;
}
// Output only. The resource name of the engine.
// Format:
// `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
string name = 1 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "discoveryengine.googleapis.com/Engine"
}
];
// Output only. The type of the engine.
Type type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Output only. The engines for the app.
repeated Engine engines = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}