@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
747 lines • 31.6 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Description
*
* ## Example Usage
*
* ### Ces Agent Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const cesAppForAgent = new gcp.ces.App("ces_app_for_agent", {
* appId: "app-id",
* location: "us",
* description: "App used as parent for CES Agent example",
* displayName: "my-app",
* languageSettings: {
* defaultLanguageCode: "en-US",
* supportedLanguageCodes: [
* "es-ES",
* "fr-FR",
* ],
* enableMultilingualSupport: true,
* fallbackAction: "escalate",
* },
* timeZoneSettings: {
* timeZone: "America/Los_Angeles",
* },
* });
* const cesToolForAgent = new gcp.ces.Tool("ces_tool_for_agent", {
* location: "us",
* app: cesAppForAgent.appId,
* toolId: "tool-1",
* executionType: "SYNCHRONOUS",
* pythonFunction: {
* name: "example_function",
* pythonCode: "def example_function() -> int: return 0",
* },
* });
* const cesToolsetForAgent = new gcp.ces.Toolset("ces_toolset_for_agent", {
* toolsetId: "toolset-id",
* location: "us",
* app: cesAppForAgent.appId,
* displayName: "Basic toolset display name",
* openApiToolset: {
* openApiSchema: `openapi: 3.0.0
* info:
* title: My Sample API
* version: 1.0.0
* description: A simple API example
* servers:
* - url: https://api.example.com/v1
* paths: {}
* `,
* ignoreUnknownFields: false,
* tlsConfig: {
* caCerts: [{
* displayName: "example",
* cert: "ZXhhbXBsZQ==",
* }],
* },
* serviceDirectoryConfig: {
* service: "projects/example/locations/us/namespaces/namespace/services/service",
* },
* apiAuthentication: {
* serviceAgentIdTokenAuthConfig: {},
* },
* },
* });
* const cesChildAgent = new gcp.ces.Agent("ces_child_agent", {
* agentId: "child-agent-id",
* location: "us",
* app: cesAppForAgent.appId,
* displayName: "child agent",
* instruction: "You are a helpful assistant for this example.",
* modelSettings: {
* model: "gemini-3.0-flash-001",
* temperature: 0.5,
* },
* llmAgent: {},
* });
* const cesGuardrailForAgent = new gcp.ces.Guardrail("ces_guardrail_for_agent", {
* guardrailId: "guardrail-id",
* location: cesAppForAgent.location,
* app: cesAppForAgent.appId,
* displayName: "Example guardrail",
* description: "Guardrail description",
* action: {
* respondImmediately: {
* responses: [{
* text: "Text",
* disabled: false,
* }],
* },
* },
* enabled: true,
* modelSafety: {
* safetySettings: [{
* category: "HARM_CATEGORY_HATE_SPEECH",
* threshold: "BLOCK_NONE",
* }],
* },
* });
* const cesAgentBasic = new gcp.ces.Agent("ces_agent_basic", {
* agentId: "agent-id",
* location: "us",
* app: cesAppForAgent.appId,
* displayName: "my-agent",
* description: "test agent",
* instruction: "You are a helpful assistant for this example.",
* modelSettings: {
* model: "gemini-3.0-flash-001",
* temperature: 0.5,
* },
* beforeAgentCallbacks: [{
* description: "Example callback",
* disabled: true,
* pythonCode: "def before_agent_callback(callback_context): return None",
* }],
* afterAgentCallbacks: [{
* description: "Example callback",
* disabled: true,
* pythonCode: "def after_agent_callback(callback_context): return None",
* }],
* beforeModelCallbacks: [{
* description: "Example callback",
* disabled: true,
* pythonCode: "def before_model_callback(callback_context, llm_request): return None",
* }],
* afterModelCallbacks: [{
* description: "Example callback",
* disabled: true,
* pythonCode: "def after_model_callback(callback_context, llm_response): return None",
* }],
* beforeToolCallbacks: [{
* description: "Example callback",
* disabled: true,
* pythonCode: "def before_tool_callback(tool, input, callback_context): return None",
* }],
* afterToolCallbacks: [{
* description: "Example callback",
* disabled: true,
* pythonCode: "def after_tool_callback(tool, input, callback_context, tool_response): return None",
* }],
* tools: [cesToolForAgent.id],
* guardrails: [cesGuardrailForAgent.id],
* toolsets: [{
* toolset: cesToolsetForAgent.id,
* toolIds: ["testtoolid"],
* }],
* childAgents: [pulumi.all([cesAppForAgent.project, cesAppForAgent.appId, cesChildAgent.agentId]).apply(([project, appId, agentId]) => `projects/${project}/locations/us/apps/${appId}/agents/${agentId}`)],
* llmAgent: {},
* });
* ```
* ### Ces Agent Remote Dialogflow Agent
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const cesAppForAgent = new gcp.ces.App("ces_app_for_agent", {
* appId: "app-id",
* location: "us",
* description: "App used as parent for CES Agent example",
* displayName: "my-app",
* languageSettings: {
* defaultLanguageCode: "en-US",
* supportedLanguageCodes: [
* "es-ES",
* "fr-FR",
* ],
* enableMultilingualSupport: true,
* fallbackAction: "escalate",
* },
* timeZoneSettings: {
* timeZone: "America/Los_Angeles",
* },
* });
* const cesAgentRemoteDialogflowAgent = new gcp.ces.Agent("ces_agent_remote_dialogflow_agent", {
* agentId: "agent-id",
* location: "us",
* app: cesAppForAgent.appId,
* displayName: "my-agent",
* modelSettings: {
* model: "gemini-3.0-flash-001",
* temperature: 0.5,
* },
* remoteDialogflowAgent: {
* agent: "projects/example/locations/us/agents/fake-agent",
* flowId: "fake-flow",
* environmentId: "fake-env",
* inputVariableMapping: {
* example: "1",
* },
* outputVariableMapping: {
* example: "1",
* },
* },
* });
* ```
* ### Ces Agent Remote Dialogflow Agent Interruption
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const cesAppForAgent = new gcp.ces.App("ces_app_for_agent", {
* appId: "app-id",
* location: "us",
* description: "App used as parent for CES Agent example",
* displayName: "my-app",
* languageSettings: {
* defaultLanguageCode: "en-US",
* supportedLanguageCodes: [
* "es-ES",
* "fr-FR",
* ],
* enableMultilingualSupport: true,
* fallbackAction: "escalate",
* },
* timeZoneSettings: {
* timeZone: "America/Los_Angeles",
* },
* });
* const cesAgentRemoteDialogflowAgentInterruption = new gcp.ces.Agent("ces_agent_remote_dialogflow_agent_interruption", {
* agentId: "agent-id",
* location: "us",
* app: cesAppForAgent.appId,
* displayName: "my-agent",
* modelSettings: {
* model: "gemini-3.0-flash-001",
* temperature: 0.5,
* },
* remoteDialogflowAgent: {
* agent: "projects/example/locations/us/agents/fake-agent",
* flowId: "fake-flow",
* environmentId: "fake-env",
* respectResponseInterruptionSettings: true,
* inputVariableMapping: {
* example: "1",
* },
* outputVariableMapping: {
* example: "1",
* },
* },
* });
* ```
*
* ## Import
*
* Agent can be imported using any of these accepted formats:
*
* * `projects/{{project}}/locations/{{location}}/apps/{{app}}/agents/{{name}}`
* * `{{project}}/{{location}}/{{app}}/{{name}}`
* * `{{location}}/{{app}}/{{name}}`
*
* When using the `pulumi import` command, Agent can be imported using one of the formats above. For example:
*
* ```sh
* $ pulumi import gcp:ces/agent:Agent default projects/{{project}}/locations/{{location}}/apps/{{app}}/agents/{{name}}
* $ pulumi import gcp:ces/agent:Agent default {{project}}/{{location}}/{{app}}/{{name}}
* $ pulumi import gcp:ces/agent:Agent default {{location}}/{{app}}/{{name}}
* ```
*/
export declare class Agent extends pulumi.CustomResource {
/**
* Get an existing Agent 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?: AgentState, opts?: pulumi.CustomResourceOptions): Agent;
/**
* Returns true if the given object is an instance of Agent. 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 Agent;
/**
* The callbacks to execute after the agent is called.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
readonly afterAgentCallbacks: pulumi.Output<outputs.ces.AgentAfterAgentCallback[] | undefined>;
/**
* The callbacks to execute after the model is called. If there are multiple
* calls to the model, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
readonly afterModelCallbacks: pulumi.Output<outputs.ces.AgentAfterModelCallback[] | undefined>;
/**
* The callbacks to execute after the tool is invoked. If there are multiple
* tool invocations, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
readonly afterToolCallbacks: pulumi.Output<outputs.ces.AgentAfterToolCallback[] | undefined>;
/**
* The ID to use for the agent, which will become the final component of
* the agent's resource name. If not provided, a unique ID will be
* automatically assigned for the agent.
*/
readonly agentId: pulumi.Output<string | 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 app: pulumi.Output<string>;
/**
* The callbacks to execute before the agent is called.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
readonly beforeAgentCallbacks: pulumi.Output<outputs.ces.AgentBeforeAgentCallback[] | undefined>;
/**
* The callbacks to execute before the model is called. If there are multiple
* calls to the model, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
readonly beforeModelCallbacks: pulumi.Output<outputs.ces.AgentBeforeModelCallback[] | undefined>;
/**
* The callbacks to execute before the tool is invoked. If there are multiple
* tool invocations, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
readonly beforeToolCallbacks: pulumi.Output<outputs.ces.AgentBeforeToolCallback[] | undefined>;
/**
* List of child agents in the agent tree.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
readonly childAgents: pulumi.Output<string[] | undefined>;
/**
* Timestamp when the agent was created.
*/
readonly createTime: pulumi.Output<string>;
/**
* 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>;
/**
* Human-readable description of the agent.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* Display name of the agent.
*/
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>;
/**
* If the agent is generated by the LLM assistant, this field contains a
* descriptive summary of the generation.
*/
readonly generatedSummary: pulumi.Output<string>;
/**
* List of guardrails for the agent.
* Format:
* `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
*/
readonly guardrails: pulumi.Output<string[] | undefined>;
/**
* Instructions for the LLM model to guide the agent's behavior.
*/
readonly instruction: pulumi.Output<string | undefined>;
/**
* Default agent type. The agent uses instructions and callbacks specified in
* the agent to perform the task using a large language model.
*/
readonly llmAgent: pulumi.Output<outputs.ces.AgentLlmAgent | 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>;
/**
* Model settings contains various configurations for the LLM model.
* Structure is documented below.
*/
readonly modelSettings: pulumi.Output<outputs.ces.AgentModelSettings | undefined>;
/**
* Identifier. The unique identifier of the agent.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
readonly name: pulumi.Output<string>;
/**
* 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 agent which will transfer execution to an existing remote
* [Dialogflow](https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents)
* agent flow. The corresponding Dialogflow agent will process subsequent user
* queries until the session ends or flow ends and the control is transferred
* back to the parent CES agent.
* Structure is documented below.
*/
readonly remoteDialogflowAgent: pulumi.Output<outputs.ces.AgentRemoteDialogflowAgent | undefined>;
/**
* List of available tools for the agent.
* Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
*/
readonly tools: pulumi.Output<string[] | undefined>;
/**
* List of toolsets for the agent.
* Structure is documented below.
*/
readonly toolsets: pulumi.Output<outputs.ces.AgentToolset[] | undefined>;
/**
* Timestamp when the agent was last updated.
*/
readonly updateTime: pulumi.Output<string>;
/**
* Create a Agent 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: AgentArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Agent resources.
*/
export interface AgentState {
/**
* The callbacks to execute after the agent is called.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
afterAgentCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentAfterAgentCallback>[] | undefined>;
/**
* The callbacks to execute after the model is called. If there are multiple
* calls to the model, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
afterModelCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentAfterModelCallback>[] | undefined>;
/**
* The callbacks to execute after the tool is invoked. If there are multiple
* tool invocations, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
afterToolCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentAfterToolCallback>[] | undefined>;
/**
* The ID to use for the agent, which will become the final component of
* the agent's resource name. If not provided, a unique ID will be
* automatically assigned for the agent.
*/
agentId?: pulumi.Input<string | undefined>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
*/
app?: pulumi.Input<string | undefined>;
/**
* The callbacks to execute before the agent is called.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
beforeAgentCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentBeforeAgentCallback>[] | undefined>;
/**
* The callbacks to execute before the model is called. If there are multiple
* calls to the model, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
beforeModelCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentBeforeModelCallback>[] | undefined>;
/**
* The callbacks to execute before the tool is invoked. If there are multiple
* tool invocations, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
beforeToolCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentBeforeToolCallback>[] | undefined>;
/**
* List of child agents in the agent tree.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
childAgents?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Timestamp when the agent was created.
*/
createTime?: pulumi.Input<string | 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 agent.
*/
description?: pulumi.Input<string | undefined>;
/**
* Display name of the agent.
*/
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>;
/**
* If the agent is generated by the LLM assistant, this field contains a
* descriptive summary of the generation.
*/
generatedSummary?: pulumi.Input<string | undefined>;
/**
* List of guardrails for the agent.
* Format:
* `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
*/
guardrails?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Instructions for the LLM model to guide the agent's behavior.
*/
instruction?: pulumi.Input<string | undefined>;
/**
* Default agent type. The agent uses instructions and callbacks specified in
* the agent to perform the task using a large language model.
*/
llmAgent?: pulumi.Input<inputs.ces.AgentLlmAgent | 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>;
/**
* Model settings contains various configurations for the LLM model.
* Structure is documented below.
*/
modelSettings?: pulumi.Input<inputs.ces.AgentModelSettings | undefined>;
/**
* Identifier. The unique identifier of the agent.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
name?: pulumi.Input<string | 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 agent which will transfer execution to an existing remote
* [Dialogflow](https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents)
* agent flow. The corresponding Dialogflow agent will process subsequent user
* queries until the session ends or flow ends and the control is transferred
* back to the parent CES agent.
* Structure is documented below.
*/
remoteDialogflowAgent?: pulumi.Input<inputs.ces.AgentRemoteDialogflowAgent | undefined>;
/**
* List of available tools for the agent.
* Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
*/
tools?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* List of toolsets for the agent.
* Structure is documented below.
*/
toolsets?: pulumi.Input<pulumi.Input<inputs.ces.AgentToolset>[] | undefined>;
/**
* Timestamp when the agent was last updated.
*/
updateTime?: pulumi.Input<string | undefined>;
}
/**
* The set of arguments for constructing a Agent resource.
*/
export interface AgentArgs {
/**
* The callbacks to execute after the agent is called.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
afterAgentCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentAfterAgentCallback>[] | undefined>;
/**
* The callbacks to execute after the model is called. If there are multiple
* calls to the model, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
afterModelCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentAfterModelCallback>[] | undefined>;
/**
* The callbacks to execute after the tool is invoked. If there are multiple
* tool invocations, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
afterToolCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentAfterToolCallback>[] | undefined>;
/**
* The ID to use for the agent, which will become the final component of
* the agent's resource name. If not provided, a unique ID will be
* automatically assigned for the agent.
*/
agentId?: pulumi.Input<string | undefined>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
*/
app: pulumi.Input<string>;
/**
* The callbacks to execute before the agent is called.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
beforeAgentCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentBeforeAgentCallback>[] | undefined>;
/**
* The callbacks to execute before the model is called. If there are multiple
* calls to the model, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
beforeModelCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentBeforeModelCallback>[] | undefined>;
/**
* The callbacks to execute before the tool is invoked. If there are multiple
* tool invocations, the callback will be executed multiple times.
* The provided callbacks are executed sequentially in the exact order they
* are given in the list. If a callback returns an overridden response,
* execution stops and any remaining callbacks are skipped.
* Structure is documented below.
*/
beforeToolCallbacks?: pulumi.Input<pulumi.Input<inputs.ces.AgentBeforeToolCallback>[] | undefined>;
/**
* List of child agents in the agent tree.
* Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
*/
childAgents?: pulumi.Input<pulumi.Input<string>[] | 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 agent.
*/
description?: pulumi.Input<string | undefined>;
/**
* Display name of the agent.
*/
displayName: pulumi.Input<string>;
/**
* List of guardrails for the agent.
* Format:
* `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
*/
guardrails?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Instructions for the LLM model to guide the agent's behavior.
*/
instruction?: pulumi.Input<string | undefined>;
/**
* Default agent type. The agent uses instructions and callbacks specified in
* the agent to perform the task using a large language model.
*/
llmAgent?: pulumi.Input<inputs.ces.AgentLlmAgent | 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>;
/**
* Model settings contains various configurations for the LLM model.
* Structure is documented below.
*/
modelSettings?: pulumi.Input<inputs.ces.AgentModelSettings | 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 agent which will transfer execution to an existing remote
* [Dialogflow](https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents)
* agent flow. The corresponding Dialogflow agent will process subsequent user
* queries until the session ends or flow ends and the control is transferred
* back to the parent CES agent.
* Structure is documented below.
*/
remoteDialogflowAgent?: pulumi.Input<inputs.ces.AgentRemoteDialogflowAgent | undefined>;
/**
* List of available tools for the agent.
* Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
*/
tools?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* List of toolsets for the agent.
* Structure is documented below.
*/
toolsets?: pulumi.Input<pulumi.Input<inputs.ces.AgentToolset>[] | undefined>;
}
//# sourceMappingURL=agent.d.ts.map