Gemini Enterprise for Customer Experience API . projects . locations . apps

Instance Methods

agents()

Returns the agents Resource.

changelogs()

Returns the changelogs Resource.

conversations()

Returns the conversations Resource.

deployments()

Returns the deployments Resource.

evaluationDatasets()

Returns the evaluationDatasets Resource.

evaluationExpectations()

Returns the evaluationExpectations Resource.

evaluationRuns()

Returns the evaluationRuns Resource.

evaluations()

Returns the evaluations Resource.

examples()

Returns the examples Resource.

guardrails()

Returns the guardrails Resource.

scheduledEvaluationRuns()

Returns the scheduledEvaluationRuns Resource.

sessions()

Returns the sessions Resource.

tools()

Returns the tools Resource.

toolsets()

Returns the toolsets Resource.

versions()

Returns the versions Resource.

close()

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.

get(name, x__xgafv=None)

Gets details of the specified app.

importApp(parent, body=None, x__xgafv=None)

Imports the specified app.

importEvaluations(parent, body=None, x__xgafv=None)

Imports evaluations into the app.

list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)

Lists apps in the given project and location.

list_next()

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.

runEvaluation(app, body=None, x__xgafv=None)

Runs an evaluation of the app.

testPersonaVoice(app, body=None, x__xgafv=None)

Tests the voice of a persona. Also accepts a default persona.

Method Details

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. 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` in ChannelProfile.
    },
    "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.
        "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.
      },
    },
  },
  "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).
    "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.
    },
  },
  "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.
  "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.
      },
      "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.
  },
  "evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
    { # A persona represents an end user in an evaluation.
      "description": "A String", # Optional. The description of the persona.
      "displayName": "A String", # Required. The display name of the persona. Unique within an app.
      "name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
      "personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
      "speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
        "environment": "A String", # Optional. The simulated audio environment.
        "speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
        "voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
      },
    },
  ],
  "evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
    "goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
    "goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
    "scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
    "scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour 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. 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.
      "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. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
      "dataset": "A String", # Optional. The BigQuery dataset 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.
    },
    "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}`
    },
  },
  "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.
  "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.
      },
    },
  ],
}

  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.
  },
  "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}`
  },
}

  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.
  "response": { # Required. The tool execution result in JSON object format. Use "output" key to specify tool response and "error" key to specify error details (if any). If "output" and "error" keys are not specified, then whole "response" is treated as tool execution result.
    "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}`
  },
}
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.
  "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. 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` in ChannelProfile.
    },
    "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.
        "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.
      },
    },
  },
  "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).
    "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.
    },
  },
  "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.
  "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.
      },
      "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.
  },
  "evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
    { # A persona represents an end user in an evaluation.
      "description": "A String", # Optional. The description of the persona.
      "displayName": "A String", # Required. The display name of the persona. Unique within an app.
      "name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
      "personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
      "speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
        "environment": "A String", # Optional. The simulated audio environment.
        "speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
        "voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
      },
    },
  ],
  "evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
    "goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
    "goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
    "scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
    "scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour 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. 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.
      "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. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
      "dataset": "A String", # Optional. The BigQuery dataset 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.
    },
    "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}`
    },
  },
  "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.
  "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.
      },
    },
  ],
}
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.
  },
}

  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.
  },
}
importEvaluations(parent, body=None, x__xgafv=None)
Imports evaluations into the app.

Args:
  parent: string, Required. The app to import the evaluations into. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for EvaluationService.ImportEvaluations.
  "conversationList": { # A list of conversation resource names. # The conversations to import the evaluations from.
    "conversations": [ # Optional. Conversation resource names.
      "A String",
    ],
  },
  "csvContent": "A String", # Raw bytes representing the csv file with the evaluations structure.
  "gcsUri": "A String", # The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI from which to import evaluations. The format of this URI must be `gs:///`.
  "importOptions": { # Configuration options for the evaluation import process. These options control how the import behaves, particularly when conflicts arise with existing evaluations data. # Optional. Options governing the import process for the evaluations.
    "conflictResolutionStrategy": "A String", # Optional. The strategy to use when resolving conflicts during import.
  },
}

  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. 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` in ChannelProfile.
        },
        "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.
            "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.
          },
        },
      },
      "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).
        "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.
        },
      },
      "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.
      "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.
          },
          "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.
      },
      "evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
        { # A persona represents an end user in an evaluation.
          "description": "A String", # Optional. The description of the persona.
          "displayName": "A String", # Required. The display name of the persona. Unique within an app.
          "name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
          "personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
          "speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
            "environment": "A String", # Optional. The simulated audio environment.
            "speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
            "voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
          },
        },
      ],
      "evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
        "goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
        "goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
        "scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
        "scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour 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. 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.
          "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. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
          "dataset": "A String", # Optional. The BigQuery dataset 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.
        },
        "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}`
        },
      },
      "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.
      "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.
          },
        },
      ],
    },
  ],
  "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. 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` in ChannelProfile.
    },
    "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.
        "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.
      },
    },
  },
  "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).
    "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.
    },
  },
  "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.
  "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.
      },
      "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.
  },
  "evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
    { # A persona represents an end user in an evaluation.
      "description": "A String", # Optional. The description of the persona.
      "displayName": "A String", # Required. The display name of the persona. Unique within an app.
      "name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
      "personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
      "speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
        "environment": "A String", # Optional. The simulated audio environment.
        "speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
        "voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
      },
    },
  ],
  "evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
    "goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
    "goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
    "scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
    "scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour 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. 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.
      "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. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
      "dataset": "A String", # Optional. The BigQuery dataset 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.
    },
    "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}`
    },
  },
  "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.
  "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.
      },
    },
  ],
}

  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. 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` in ChannelProfile.
    },
    "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.
        "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.
      },
    },
  },
  "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).
    "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.
    },
  },
  "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.
  "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.
      },
      "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.
  },
  "evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
    { # A persona represents an end user in an evaluation.
      "description": "A String", # Optional. The description of the persona.
      "displayName": "A String", # Required. The display name of the persona. Unique within an app.
      "name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
      "personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
      "speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
        "environment": "A String", # Optional. The simulated audio environment.
        "speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
        "voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
      },
    },
  ],
  "evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
    "goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
    "goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
    "scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
    "scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour 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. 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.
      "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. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
      "dataset": "A String", # Optional. The BigQuery dataset 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.
    },
    "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}`
    },
  },
  "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.
  "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.
      },
    },
  ],
}
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. # Required. 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. # Required. 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}`
  },
}
runEvaluation(app, body=None, x__xgafv=None)
Runs an evaluation of the app.

Args:
  app: string, Required. The app to evaluate. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for EvaluationService.RunEvaluation.
  "app": "A String", # Required. The app to evaluate. Format: `projects/{project}/locations/{location}/apps/{app}`
  "appVersion": "A String", # Optional. The app version to evaluate. Format: `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
  "config": { # EvaluationConfig configures settings for running the evaluation. # Optional. The configuration to use for the run.
    "evaluationChannel": "A String", # Optional. The channel to evaluate.
    "inputAudioConfig": { # InputAudioConfig configures how the CES agent should interpret the incoming audio data. # Optional. Configuration for processing the input audio.
      "audioEncoding": "A String", # Required. The encoding of the input audio data.
      "noiseSuppressionLevel": "A String", # Optional. Whether to enable noise suppression on the input audio. Available values are "low", "moderate", "high", "very_high".
      "sampleRateHertz": 42, # Required. The sample rate (in Hertz) of the input audio data.
    },
    "outputAudioConfig": { # OutputAudioConfig configures how the CES agent should synthesize outgoing audio responses. # Optional. Configuration for generating the output audio.
      "audioEncoding": "A String", # Required. The encoding of the output audio data.
      "sampleRateHertz": 42, # Required. The sample rate (in Hertz) of the output audio data.
    },
    "toolCallBehaviour": "A String", # Optional. Specifies whether the evaluation should use real tool calls or fake tools.
  },
  "displayName": "A String", # Optional. The display name of the evaluation run.
  "evaluationDataset": "A String", # Optional. An evaluation dataset to run. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationDatasets/{evaluationDataset}`
  "evaluations": [ # Optional. List of evaluations to run. Format: `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation}`
    "A String",
  ],
  "generateLatencyReport": True or False, # Optional. Whether to generate a latency report for the evaluation run.
  "goldenRunMethod": "A String", # Optional. The method to run the evaluation if it is a golden evaluation. If not set, default to STABLE.
  "optimizationConfig": { # Configuration for running the optimization step after the evaluation run. # Optional. Configuration for running the optimization step after the evaluation run. If not set, the optimization step will not be run.
    "assistantSession": "A String", # Output only. The assistant session to use for the optimization based on this evaluation run. Format: `projects/{project}/locations/{location}/apps/{app}/assistantSessions/{assistantSession}`
    "errorMessage": "A String", # Output only. The error message if the optimization run failed.
    "generateLossReport": True or False, # Optional. Whether to generate a loss report.
    "lossReport": { # Output only. The generated loss report.
      "a_key": "", # Properties of the object.
    },
    "reportSummary": "A String", # Output only. The summary of the loss report.
    "shouldSuggestFix": True or False, # Output only. Whether to suggest a fix for the losses.
    "status": "A String", # Output only. The status of the optimization run.
  },
  "personaRunConfigs": [ # Optional. The configuration to use for the run per persona.
    { # Configuration for running an evaluation for a specific persona.
      "persona": "A String", # Optional. The persona to use for the evaluation. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
      "taskCount": 42, # Optional. The number of tasks to run for the persona.
    },
  ],
  "runCount": 42, # Optional. The number of times to run the evaluation. If not set, the default value is 1 per golden, and 5 per scenario.
  "scheduledEvaluationRun": "A String", # Optional. The resource name of the `ScheduledEvaluationRun` that is triggering this evaluation run. If this field is set, the `scheduled_evaluation_run` field on the created `EvaluationRun` resource will be populated from this value. Format: `projects/{project}/locations/{location}/apps/{app}/scheduledEvaluationRuns/{scheduled_evaluation_run}`
}

  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.
  },
}
testPersonaVoice(app, body=None, x__xgafv=None)
Tests the voice of a persona. Also accepts a default persona.

Args:
  app: string, Required. the resource name of the app to test the persona voice for. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for EvaluationService.TestPersonaVoice.
  "personaId": "A String", # Required. The persona ID to test the voice for. Also accepts "default".
  "text": "A String", # Required. The text to test the voice for.
}

  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 EvaluationService.TestPersonaVoice.
  "audio": "A String", # The audio data bytes of the synthesized voice.
}