@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
784 lines • 29.6 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Customer Engagement Suite App
*
* To get more information about App, see:
*
* * [API documentation](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/rest/v1/projects.locations.apps)
*
* ## Example Usage
*
* ### Ces App Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
* import * as std from "@pulumi/std";
*
* const project = gcp.organizations.getProject({});
* const fakePrivateKeySecret = new gcp.secretmanager.Secret("fake_private_key_secret", {
* secretId: "fake-pk-secret-app-tf1",
* replication: {
* auto: {},
* },
* });
* const fakeSecretVersion = new gcp.secretmanager.SecretVersion("fake_secret_version", {
* secret: fakePrivateKeySecret.id,
* secretData: std.file({
* input: "test-fixtures/test.key",
* }).then(invoke => invoke.result),
* });
* const privateKeyAccessor = new gcp.secretmanager.SecretIamMember("private_key_accessor", {
* project: fakePrivateKeySecret.project,
* secretId: fakePrivateKeySecret.secretId,
* role: "roles/secretmanager.secretAccessor",
* member: project.then(project => `serviceAccount:service-${project.number}@gcp-sa-ces.iam.gserviceaccount.com`),
* });
* const cesAppBasic = new gcp.ces.App("ces_app_basic", {
* appId: "app-id",
* location: "us",
* description: "Basic CES App example",
* displayName: "my-app",
* pinned: true,
* languageSettings: {
* defaultLanguageCode: "en-US",
* supportedLanguageCodes: [
* "es-ES",
* "fr-FR",
* ],
* enableMultilingualSupport: true,
* fallbackAction: "escalate",
* },
* audioProcessingConfig: {
* synthesizeSpeechConfigs: [
* {
* languageCode: "en-US",
* voice: "en-US-Standard-A",
* speakingRate: 1,
* },
* {
* languageCode: "es-ES",
* voice: "es-ES-Standard-A",
* speakingRate: 0.95,
* },
* ],
* bargeInConfig: {
* bargeInAwareness: true,
* },
* inactivityTimeout: "300s",
* ambientSoundConfig: {
* prebuiltAmbientSound: "room_2",
* volumeGainDb: -6,
* },
* },
* loggingSettings: {
* redactionConfig: {
* enableRedaction: true,
* inspectTemplate: "projects/fake-project/locations/us/inspectTemplates/example-inspect",
* deidentifyTemplate: "projects/fake-project/locations/us/deidentifyTemplates/example-deidentify",
* },
* audioRecordingConfig: {
* gcsBucket: "gs://fake-app-audio-recordings",
* gcsPathPrefix: "projects/fake-project/location/us/app/test-app/123/$session/123",
* },
* bigqueryExportSettings: {
* dataset: "projects/fake-project/datasets/fake_app_logs",
* enabled: false,
* project: "projects/fake-project",
* },
* cloudLoggingSettings: {
* enableCloudLogging: true,
* },
* conversationLoggingSettings: {
* disableConversationLogging: true,
* },
* },
* modelSettings: {
* model: "gemini-3.0-flash-001",
* temperature: 0.5,
* },
* evaluationMetricsThresholds: {
* goldenEvaluationMetricsThresholds: {
* turnLevelMetricsThresholds: {
* semanticSimilaritySuccessThreshold: 3,
* overallToolInvocationCorrectnessThreshold: 1,
* },
* expectationLevelMetricsThresholds: {
* toolInvocationParameterCorrectnessThreshold: 1,
* },
* },
* },
* variableDeclarations: [{
* name: "test",
* description: "test",
* schema: {
* description: "schema description",
* type: "ARRAY",
* title: "title",
* nullable: true,
* requireds: ["some_property"],
* enums: [
* "VALUE_A",
* "VALUE_B",
* ],
* ref: "#/defs/MyDefinition",
* uniqueItems: true,
* defs: JSON.stringify({
* SimpleString: {
* type: "STRING",
* description: "A simple string definition",
* },
* }),
* anyOf: JSON.stringify([{
* type: "STRING",
* description: "any_of option 1: string",
* }]),
* "default": JSON.stringify(false),
* prefixItems: JSON.stringify([{
* type: "ARRAY",
* description: "prefix item 1",
* }]),
* additionalProperties: JSON.stringify({
* type: "BOOLEAN",
* }),
* properties: JSON.stringify({
* name: {
* type: "STRING",
* description: "A name",
* },
* }),
* items: JSON.stringify({
* type: "ARRAY",
* description: "An array",
* }),
* },
* }],
* globalInstruction: "You are a virtual assistant for an e-commerce platform. Be friendly and helpful.",
* guardrails: [],
* defaultChannelProfile: {
* channelType: "WEB_UI",
* disableBargeInControl: false,
* disableDtmf: true,
* personaProperty: {
* persona: "CONCISE",
* },
* profileId: "profile-id",
* webWidgetConfig: {
* modality: "CHAT_ONLY",
* theme: "LIGHT",
* webWidgetTitle: "Help Assistant",
* },
* },
* metadata: {
* deployment_env: "test",
* },
* timeZoneSettings: {
* timeZone: "America/Los_Angeles",
* },
* clientCertificateSettings: {
* tlsCertificate: std.file({
* input: "test-fixtures/cert.pem",
* }).then(invoke => invoke.result),
* privateKey: fakeSecretVersion.name,
* },
* });
* ```
* ### Ces App Ambient Sound Gcs Uri
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const cesAppAmbientSoundGcsUri = new gcp.ces.App("ces_app_ambient_sound_gcs_uri", {
* appId: "app-id",
* location: "us",
* description: "Basic CES App example",
* displayName: "my-app-ambient-sound-gcs-uri",
* languageSettings: {
* defaultLanguageCode: "en-US",
* supportedLanguageCodes: [
* "es-ES",
* "fr-FR",
* ],
* enableMultilingualSupport: true,
* fallbackAction: "escalate",
* },
* audioProcessingConfig: {
* synthesizeSpeechConfigs: [
* {
* languageCode: "en-US",
* voice: "en-US-Standard-A",
* speakingRate: 1,
* },
* {
* languageCode: "es-ES",
* voice: "es-ES-Standard-A",
* speakingRate: 0.95,
* },
* ],
* bargeInConfig: {
* bargeInAwareness: true,
* },
* inactivityTimeout: "300s",
* ambientSoundConfig: {
* gcsUri: "gs://fake-bucket/sounds/ambient.wav",
* volumeGainDb: -6,
* },
* },
* loggingSettings: {
* redactionConfig: {
* enableRedaction: true,
* inspectTemplate: "projects/fake-project/locations/us/inspectTemplates/example-inspect",
* deidentifyTemplate: "projects/fake-project/locations/us/deidentifyTemplates/example-deidentify",
* },
* audioRecordingConfig: {
* gcsBucket: "gs://fake-app-audio-recordings",
* gcsPathPrefix: "projects/fake-project/location/us/app/fake-app/123/$session/123",
* },
* bigqueryExportSettings: {
* dataset: "projects/fake-project/datasets/fake_app_logs",
* enabled: false,
* project: "projects/fake-project",
* },
* cloudLoggingSettings: {
* enableCloudLogging: true,
* },
* conversationLoggingSettings: {
* disableConversationLogging: true,
* },
* },
* modelSettings: {
* model: "gemini-3.0-flash-001",
* temperature: 0.5,
* },
* evaluationMetricsThresholds: {
* goldenEvaluationMetricsThresholds: {
* turnLevelMetricsThresholds: {
* semanticSimilaritySuccessThreshold: 3,
* overallToolInvocationCorrectnessThreshold: 1,
* },
* expectationLevelMetricsThresholds: {
* toolInvocationParameterCorrectnessThreshold: 1,
* },
* },
* },
* variableDeclarations: [{
* name: "test",
* description: "test",
* schema: {
* description: "schema description",
* type: "ARRAY",
* nullable: true,
* requireds: ["some_property"],
* enums: [
* "VALUE_A",
* "VALUE_B",
* ],
* ref: "#/defs/MyDefinition",
* uniqueItems: true,
* defs: JSON.stringify({
* SimpleString: {
* type: "STRING",
* description: "A simple string definition",
* },
* }),
* anyOf: JSON.stringify([{
* type: "STRING",
* description: "any_of option 1: string",
* }]),
* "default": JSON.stringify(false),
* prefixItems: JSON.stringify([{
* type: "ARRAY",
* description: "prefix item 1",
* }]),
* additionalProperties: JSON.stringify({
* type: "BOOLEAN",
* }),
* properties: JSON.stringify({
* name: {
* type: "STRING",
* description: "A name",
* },
* }),
* items: JSON.stringify({
* type: "ARRAY",
* description: "An array",
* }),
* },
* }],
* globalInstruction: "You are a virtual assistant for an e-commerce platform. Be friendly and helpful.",
* guardrails: [],
* defaultChannelProfile: {
* channelType: "WEB_UI",
* disableBargeInControl: false,
* disableDtmf: true,
* personaProperty: {
* persona: "CONCISE",
* },
* profileId: "profile-id",
* webWidgetConfig: {
* modality: "CHAT_ONLY",
* theme: "LIGHT",
* webWidgetTitle: "Help Assistant",
* },
* },
* metadata: {
* deployment_env: "test",
* },
* timeZoneSettings: {
* timeZone: "America/Los_Angeles",
* },
* });
* ```
*
* ## Import
*
* App can be imported using any of these accepted formats:
*
* * `projects/{{project}}/locations/{{location}}/apps/{{name}}`
* * `{{project}}/{{location}}/{{name}}`
* * `{{location}}/{{name}}`
*
* When using the `pulumi import` command, App can be imported using one of the formats above. For example:
*
* ```sh
* $ pulumi import gcp:ces/app:App default projects/{{project}}/locations/{{location}}/apps/{{name}}
* $ pulumi import gcp:ces/app:App default {{project}}/{{location}}/{{name}}
* $ pulumi import gcp:ces/app:App default {{location}}/{{name}}
* ```
*/
export declare class App extends pulumi.CustomResource {
/**
* Get an existing App resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: AppState, opts?: pulumi.CustomResourceOptions): App;
/**
* Returns true if the given object is an instance of App. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is App;
/**
* 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.
*/
readonly appId: pulumi.Output<string>;
/**
* Configuration for how the input and output audio should be processed and
* delivered.
* Structure is documented below.
*/
readonly audioProcessingConfig: pulumi.Output<outputs.ces.AppAudioProcessingConfig | undefined>;
/**
* The default client certificate settings for the app.
* Structure is documented below.
*/
readonly clientCertificateSettings: pulumi.Output<outputs.ces.AppClientCertificateSettings | undefined>;
/**
* Timestamp when the app was created.
*/
readonly createTime: pulumi.Output<string>;
/**
* Data store related settings for the app.
* Structure is documented below.
*/
readonly dataStoreSettings: pulumi.Output<outputs.ces.AppDataStoreSettings | undefined>;
/**
* A ChannelProfile configures the agent's behavior for a specific communication
* channel, such as web UI or telephony.
* Structure is documented below.
*/
readonly defaultChannelProfile: pulumi.Output<outputs.ces.AppDefaultChannelProfile | undefined>;
/**
* Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
* When a 'terraform destroy' or 'pulumi up' would delete the resource,
* the command will fail if this field is set to "PREVENT" in Terraform state.
* When set to "ABANDON", the command will remove the resource from Terraform
* management without updating or deleting the resource in the API.
* When set to "DELETE", deleting the resource is allowed.
*/
readonly deletionPolicy: pulumi.Output<string>;
/**
* Number of deployments in the app.
*/
readonly deploymentCount: pulumi.Output<number>;
/**
* Human-readable description of the app.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* Display name of the app.
*/
readonly displayName: pulumi.Output<string>;
/**
* Etag used to ensure the object hasn't changed during a read-modify-write
* operation. If the etag is empty, the update will overwrite any concurrent
* changes.
*/
readonly etag: pulumi.Output<string>;
/**
* Threshold settings for metrics in an Evaluation.
* Structure is documented below.
*/
readonly evaluationMetricsThresholds: pulumi.Output<outputs.ces.AppEvaluationMetricsThresholds | undefined>;
/**
* 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.
*/
readonly globalInstruction: pulumi.Output<string | undefined>;
/**
* List of guardrails for the app.
* Format:
* `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
*/
readonly guardrails: pulumi.Output<string[] | undefined>;
/**
* Language settings of the app.
* Structure is documented below.
*/
readonly languageSettings: pulumi.Output<outputs.ces.AppLanguageSettings | undefined>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
*/
readonly location: pulumi.Output<string>;
/**
* Settings to describe the logging behaviors for the app.
* Structure is documented below.
*/
readonly loggingSettings: pulumi.Output<outputs.ces.AppLoggingSettings>;
/**
* Metadata about the app. This field can be used to store additional
* information relevant to the app's details or intended usages.
*/
readonly metadata: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Model settings contains various configurations for the LLM model.
* Structure is documented below.
*/
readonly modelSettings: pulumi.Output<outputs.ces.AppModelSettings | undefined>;
/**
* Identifier. The unique identifier of the app.
* Format: `projects/{project}/locations/{location}/apps/{app}`
*/
readonly name: pulumi.Output<string>;
/**
* Whether the app is pinned in the app list.
*/
readonly pinned: pulumi.Output<boolean | undefined>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
readonly project: pulumi.Output<string>;
/**
* The root agent is the entry point of the app.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
readonly rootAgent: pulumi.Output<string | undefined>;
/**
* TimeZone settings of the app.
* Structure is documented below.
*/
readonly timeZoneSettings: pulumi.Output<outputs.ces.AppTimeZoneSettings | undefined>;
/**
* The tool execution mode for the app.
* See the [API reference](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/rpc/google.cloud.ces.v1#google.cloud.ces.v1.App.ToolExecutionMode) for more details.
*/
readonly toolExecutionMode: pulumi.Output<string | undefined>;
/**
* Timestamp when the app was last updated.
*/
readonly updateTime: pulumi.Output<string>;
/**
* The declarations of the variables.
* Structure is documented below.
*/
readonly variableDeclarations: pulumi.Output<outputs.ces.AppVariableDeclaration[] | undefined>;
/**
* Create a App resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: AppArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering App resources.
*/
export interface AppState {
/**
* 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.
*/
appId?: pulumi.Input<string | undefined>;
/**
* Configuration for how the input and output audio should be processed and
* delivered.
* Structure is documented below.
*/
audioProcessingConfig?: pulumi.Input<inputs.ces.AppAudioProcessingConfig | undefined>;
/**
* The default client certificate settings for the app.
* Structure is documented below.
*/
clientCertificateSettings?: pulumi.Input<inputs.ces.AppClientCertificateSettings | undefined>;
/**
* Timestamp when the app was created.
*/
createTime?: pulumi.Input<string | undefined>;
/**
* Data store related settings for the app.
* Structure is documented below.
*/
dataStoreSettings?: pulumi.Input<inputs.ces.AppDataStoreSettings | undefined>;
/**
* A ChannelProfile configures the agent's behavior for a specific communication
* channel, such as web UI or telephony.
* Structure is documented below.
*/
defaultChannelProfile?: pulumi.Input<inputs.ces.AppDefaultChannelProfile | undefined>;
/**
* Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
* When a 'terraform destroy' or 'pulumi up' would delete the resource,
* the command will fail if this field is set to "PREVENT" in Terraform state.
* When set to "ABANDON", the command will remove the resource from Terraform
* management without updating or deleting the resource in the API.
* When set to "DELETE", deleting the resource is allowed.
*/
deletionPolicy?: pulumi.Input<string | undefined>;
/**
* Number of deployments in the app.
*/
deploymentCount?: pulumi.Input<number | undefined>;
/**
* Human-readable description of the app.
*/
description?: pulumi.Input<string | undefined>;
/**
* Display name of the app.
*/
displayName?: pulumi.Input<string | undefined>;
/**
* Etag used to ensure the object hasn't changed during a read-modify-write
* operation. If the etag is empty, the update will overwrite any concurrent
* changes.
*/
etag?: pulumi.Input<string | undefined>;
/**
* Threshold settings for metrics in an Evaluation.
* Structure is documented below.
*/
evaluationMetricsThresholds?: pulumi.Input<inputs.ces.AppEvaluationMetricsThresholds | undefined>;
/**
* Instructions for all the agents in the app.
* You can use this instruction to set up a stable identity or personality
* across all the agents.
*/
globalInstruction?: pulumi.Input<string | undefined>;
/**
* List of guardrails for the app.
* Format:
* `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
*/
guardrails?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Language settings of the app.
* Structure is documented below.
*/
languageSettings?: pulumi.Input<inputs.ces.AppLanguageSettings | undefined>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
*/
location?: pulumi.Input<string | undefined>;
/**
* Settings to describe the logging behaviors for the app.
* Structure is documented below.
*/
loggingSettings?: pulumi.Input<inputs.ces.AppLoggingSettings | undefined>;
/**
* Metadata about the app. This field can be used to store additional
* information relevant to the app's details or intended usages.
*/
metadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* Model settings contains various configurations for the LLM model.
* Structure is documented below.
*/
modelSettings?: pulumi.Input<inputs.ces.AppModelSettings | undefined>;
/**
* Identifier. The unique identifier of the app.
* Format: `projects/{project}/locations/{location}/apps/{app}`
*/
name?: pulumi.Input<string | undefined>;
/**
* Whether the app is pinned in the app list.
*/
pinned?: pulumi.Input<boolean | undefined>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
project?: pulumi.Input<string | undefined>;
/**
* The root agent is the entry point of the app.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
rootAgent?: pulumi.Input<string | undefined>;
/**
* TimeZone settings of the app.
* Structure is documented below.
*/
timeZoneSettings?: pulumi.Input<inputs.ces.AppTimeZoneSettings | undefined>;
/**
* The tool execution mode for the app.
* See the [API reference](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/rpc/google.cloud.ces.v1#google.cloud.ces.v1.App.ToolExecutionMode) for more details.
*/
toolExecutionMode?: pulumi.Input<string | undefined>;
/**
* Timestamp when the app was last updated.
*/
updateTime?: pulumi.Input<string | undefined>;
/**
* The declarations of the variables.
* Structure is documented below.
*/
variableDeclarations?: pulumi.Input<pulumi.Input<inputs.ces.AppVariableDeclaration>[] | undefined>;
}
/**
* The set of arguments for constructing a App resource.
*/
export interface AppArgs {
/**
* 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.
*/
appId: pulumi.Input<string>;
/**
* Configuration for how the input and output audio should be processed and
* delivered.
* Structure is documented below.
*/
audioProcessingConfig?: pulumi.Input<inputs.ces.AppAudioProcessingConfig | undefined>;
/**
* The default client certificate settings for the app.
* Structure is documented below.
*/
clientCertificateSettings?: pulumi.Input<inputs.ces.AppClientCertificateSettings | undefined>;
/**
* Data store related settings for the app.
* Structure is documented below.
*/
dataStoreSettings?: pulumi.Input<inputs.ces.AppDataStoreSettings | undefined>;
/**
* A ChannelProfile configures the agent's behavior for a specific communication
* channel, such as web UI or telephony.
* Structure is documented below.
*/
defaultChannelProfile?: pulumi.Input<inputs.ces.AppDefaultChannelProfile | undefined>;
/**
* Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
* When a 'terraform destroy' or 'pulumi up' would delete the resource,
* the command will fail if this field is set to "PREVENT" in Terraform state.
* When set to "ABANDON", the command will remove the resource from Terraform
* management without updating or deleting the resource in the API.
* When set to "DELETE", deleting the resource is allowed.
*/
deletionPolicy?: pulumi.Input<string | undefined>;
/**
* Human-readable description of the app.
*/
description?: pulumi.Input<string | undefined>;
/**
* Display name of the app.
*/
displayName: pulumi.Input<string>;
/**
* Threshold settings for metrics in an Evaluation.
* Structure is documented below.
*/
evaluationMetricsThresholds?: pulumi.Input<inputs.ces.AppEvaluationMetricsThresholds | undefined>;
/**
* Instructions for all the agents in the app.
* You can use this instruction to set up a stable identity or personality
* across all the agents.
*/
globalInstruction?: pulumi.Input<string | undefined>;
/**
* List of guardrails for the app.
* Format:
* `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
*/
guardrails?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Language settings of the app.
* Structure is documented below.
*/
languageSettings?: pulumi.Input<inputs.ces.AppLanguageSettings | undefined>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
*/
location: pulumi.Input<string>;
/**
* Settings to describe the logging behaviors for the app.
* Structure is documented below.
*/
loggingSettings?: pulumi.Input<inputs.ces.AppLoggingSettings | undefined>;
/**
* Metadata about the app. This field can be used to store additional
* information relevant to the app's details or intended usages.
*/
metadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* Model settings contains various configurations for the LLM model.
* Structure is documented below.
*/
modelSettings?: pulumi.Input<inputs.ces.AppModelSettings | undefined>;
/**
* Whether the app is pinned in the app list.
*/
pinned?: pulumi.Input<boolean | undefined>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
project?: pulumi.Input<string | undefined>;
/**
* The root agent is the entry point of the app.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
rootAgent?: pulumi.Input<string | undefined>;
/**
* TimeZone settings of the app.
* Structure is documented below.
*/
timeZoneSettings?: pulumi.Input<inputs.ces.AppTimeZoneSettings | undefined>;
/**
* The tool execution mode for the app.
* See the [API reference](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/rpc/google.cloud.ces.v1#google.cloud.ces.v1.App.ToolExecutionMode) for more details.
*/
toolExecutionMode?: pulumi.Input<string | undefined>;
/**
* The declarations of the variables.
* Structure is documented below.
*/
variableDeclarations?: pulumi.Input<pulumi.Input<inputs.ces.AppVariableDeclaration>[] | undefined>;
}
//# sourceMappingURL=app.d.ts.map