1. Packages
  2. Packages
  3. Google Cloud (GCP) Classic
  4. API Docs
  5. ces
  6. Tool
Viewing docs for Google Cloud v9.32.1
published on Wednesday, Jul 29, 2026 by Pulumi
gcp logo
Viewing docs for Google Cloud v9.32.1
published on Wednesday, Jul 29, 2026 by Pulumi

    Description

    Note: Direct Management Restriction for Certain Tool Types:

    Individual tools of type openApiTool, mcpTool, connectorTool, and remoteAgentTool cannot be created, updated, or managed directly using the gcp.ces.Tool resource.

    openApiTool, mcpTool, and connectorTool are dynamically generated at runtime based on their corresponding toolsets (configured via the gcp.ces.Toolset resource). remoteAgentTool represents A2A connections configured externally, and systemTool represents pre-defined platform tools managed entirely by Google Cloud.

    Consequently, blocks like openApiTool, mcpTool, connectorTool, remoteAgentTool, and systemTool are marked as read-only (output-only) in this resource. They are populated by the server for reference purposes only (e.g., after importing an existing tool into your state) and cannot be configured in your Terraform HCL configuration.

    Example Usage

    Ces Tool Client Function Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const my_app = new gcp.ces.App("my-app", {
        location: "us",
        displayName: "my-app",
        appId: "app-id",
        timeZoneSettings: {
            timeZone: "America/Los_Angeles",
        },
    });
    const cesToolClientFunctionBasic = new gcp.ces.Tool("ces_tool_client_function_basic", {
        location: "us",
        app: my_app.name,
        toolId: "ces_tool_basic1",
        executionType: "SYNCHRONOUS",
        clientFunction: {
            name: "ces_tool_client_function_basic",
            description: "example-description",
            parameters: {
                additionalProperties: JSON.stringify({
                    type: "BOOLEAN",
                }),
                anyOf: JSON.stringify([{
                    type: "STRING",
                    description: "any_of option 1: string",
                }]),
                "default": JSON.stringify(false),
                defs: JSON.stringify({
                    SimpleString: {
                        type: "STRING",
                        description: "A simple string definition",
                    },
                }),
                description: "schema description",
                enums: [
                    "VALUE_A",
                    "VALUE_B",
                ],
                items: JSON.stringify({
                    type: "ARRAY",
                    description: "An array",
                }),
                maxItems: 32,
                maximum: 64,
                minItems: 1,
                minimum: 2,
                nullable: true,
                prefixItems: JSON.stringify([{
                    type: "ARRAY",
                    description: "prefix item 1",
                }]),
                properties: JSON.stringify({
                    name: {
                        type: "STRING",
                        description: "A name",
                    },
                }),
                ref: "#/defs/MyDefinition",
                requireds: ["some_property"],
                title: "Title",
                type: "ARRAY",
                uniqueItems: true,
            },
            response: {
                additionalProperties: JSON.stringify({
                    type: "BOOLEAN",
                }),
                anyOf: JSON.stringify([{
                    type: "STRING",
                    description: "any_of option 1: string",
                }]),
                "default": JSON.stringify(false),
                defs: JSON.stringify({
                    SimpleString: {
                        type: "STRING",
                        description: "A simple string definition",
                    },
                }),
                description: "schema description",
                enums: [
                    "VALUE_A",
                    "VALUE_B",
                ],
                items: JSON.stringify({
                    type: "ARRAY",
                    description: "An array",
                }),
                maxItems: 32,
                maximum: 64,
                minItems: 1,
                minimum: 2,
                nullable: true,
                prefixItems: JSON.stringify([{
                    type: "ARRAY",
                    description: "prefix item 1",
                }]),
                properties: JSON.stringify({
                    name: {
                        type: "STRING",
                        description: "A name",
                    },
                }),
                ref: "#/defs/MyDefinition",
                requireds: ["some_property"],
                title: "Title",
                type: "ARRAY",
                uniqueItems: true,
            },
        },
    });
    
    import pulumi
    import json
    import pulumi_gcp as gcp
    
    my_app = gcp.ces.App("my-app",
        location="us",
        display_name="my-app",
        app_id="app-id",
        time_zone_settings={
            "time_zone": "America/Los_Angeles",
        })
    ces_tool_client_function_basic = gcp.ces.Tool("ces_tool_client_function_basic",
        location="us",
        app=my_app.name,
        tool_id="ces_tool_basic1",
        execution_type="SYNCHRONOUS",
        client_function={
            "name": "ces_tool_client_function_basic",
            "description": "example-description",
            "parameters": {
                "additional_properties": json.dumps({
                    "type": "BOOLEAN",
                }),
                "any_of": json.dumps([{
                    "type": "STRING",
                    "description": "any_of option 1: string",
                }]),
                "default": json.dumps(False),
                "defs": json.dumps({
                    "SimpleString": {
                        "type": "STRING",
                        "description": "A simple string definition",
                    },
                }),
                "description": "schema description",
                "enums": [
                    "VALUE_A",
                    "VALUE_B",
                ],
                "items": json.dumps({
                    "type": "ARRAY",
                    "description": "An array",
                }),
                "max_items": 32,
                "maximum": float(64),
                "min_items": 1,
                "minimum": float(2),
                "nullable": True,
                "prefix_items": json.dumps([{
                    "type": "ARRAY",
                    "description": "prefix item 1",
                }]),
                "properties": json.dumps({
                    "name": {
                        "type": "STRING",
                        "description": "A name",
                    },
                }),
                "ref": "#/defs/MyDefinition",
                "requireds": ["some_property"],
                "title": "Title",
                "type": "ARRAY",
                "unique_items": True,
            },
            "response": {
                "additional_properties": json.dumps({
                    "type": "BOOLEAN",
                }),
                "any_of": json.dumps([{
                    "type": "STRING",
                    "description": "any_of option 1: string",
                }]),
                "default": json.dumps(False),
                "defs": json.dumps({
                    "SimpleString": {
                        "type": "STRING",
                        "description": "A simple string definition",
                    },
                }),
                "description": "schema description",
                "enums": [
                    "VALUE_A",
                    "VALUE_B",
                ],
                "items": json.dumps({
                    "type": "ARRAY",
                    "description": "An array",
                }),
                "max_items": 32,
                "maximum": float(64),
                "min_items": 1,
                "minimum": float(2),
                "nullable": True,
                "prefix_items": json.dumps([{
                    "type": "ARRAY",
                    "description": "prefix item 1",
                }]),
                "properties": json.dumps({
                    "name": {
                        "type": "STRING",
                        "description": "A name",
                    },
                }),
                "ref": "#/defs/MyDefinition",
                "requireds": ["some_property"],
                "title": "Title",
                "type": "ARRAY",
                "unique_items": True,
            },
        })
    
    package main
    
    import (
    	"encoding/json"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		my_app, err := ces.NewApp(ctx, "my-app", &ces.AppArgs{
    			Location:    pulumi.String("us"),
    			DisplayName: pulumi.String("my-app"),
    			AppId:       pulumi.String("app-id"),
    			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
    				TimeZone: pulumi.String("America/Los_Angeles"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON0, err := json.Marshal(map[string]interface{}{
    			"type": "BOOLEAN",
    		})
    		if err != nil {
    			return err
    		}
    		json0 := string(tmpJSON0)
    		tmpJSON1, err := json.Marshal([]map[string]interface{}{
    			map[string]interface{}{
    				"type":        "STRING",
    				"description": "any_of option 1: string",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json1 := string(tmpJSON1)
    		tmpJSON2, err := json.Marshal(false)
    		if err != nil {
    			return err
    		}
    		json2 := string(tmpJSON2)
    		tmpJSON3, err := json.Marshal(map[string]interface{}{
    			"SimpleString": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A simple string definition",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json3 := string(tmpJSON3)
    		tmpJSON4, err := json.Marshal(map[string]interface{}{
    			"type":        "ARRAY",
    			"description": "An array",
    		})
    		if err != nil {
    			return err
    		}
    		json4 := string(tmpJSON4)
    		tmpJSON5, err := json.Marshal([]map[string]interface{}{
    			map[string]interface{}{
    				"type":        "ARRAY",
    				"description": "prefix item 1",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json5 := string(tmpJSON5)
    		tmpJSON6, err := json.Marshal(map[string]interface{}{
    			"name": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A name",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json6 := string(tmpJSON6)
    		tmpJSON7, err := json.Marshal(map[string]interface{}{
    			"type": "BOOLEAN",
    		})
    		if err != nil {
    			return err
    		}
    		json7 := string(tmpJSON7)
    		tmpJSON8, err := json.Marshal([]map[string]interface{}{
    			map[string]interface{}{
    				"type":        "STRING",
    				"description": "any_of option 1: string",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json8 := string(tmpJSON8)
    		tmpJSON9, err := json.Marshal(false)
    		if err != nil {
    			return err
    		}
    		json9 := string(tmpJSON9)
    		tmpJSON10, err := json.Marshal(map[string]interface{}{
    			"SimpleString": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A simple string definition",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json10 := string(tmpJSON10)
    		tmpJSON11, err := json.Marshal(map[string]interface{}{
    			"type":        "ARRAY",
    			"description": "An array",
    		})
    		if err != nil {
    			return err
    		}
    		json11 := string(tmpJSON11)
    		tmpJSON12, err := json.Marshal([]map[string]interface{}{
    			map[string]interface{}{
    				"type":        "ARRAY",
    				"description": "prefix item 1",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json12 := string(tmpJSON12)
    		tmpJSON13, err := json.Marshal(map[string]interface{}{
    			"name": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A name",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json13 := string(tmpJSON13)
    		_, err = ces.NewTool(ctx, "ces_tool_client_function_basic", &ces.ToolArgs{
    			Location:      pulumi.String("us"),
    			App:           my_app.Name,
    			ToolId:        pulumi.String("ces_tool_basic1"),
    			ExecutionType: pulumi.String("SYNCHRONOUS"),
    			ClientFunction: &ces.ToolClientFunctionArgs{
    				Name:        pulumi.String("ces_tool_client_function_basic"),
    				Description: pulumi.String("example-description"),
    				Parameters: &ces.ToolClientFunctionParametersArgs{
    					AdditionalProperties: pulumi.String(json0),
    					AnyOf:                pulumi.String(json1),
    					Default:              pulumi.String(json2),
    					Defs:                 pulumi.String(json3),
    					Description:          pulumi.String("schema description"),
    					Enums: pulumi.StringArray{
    						pulumi.String("VALUE_A"),
    						pulumi.String("VALUE_B"),
    					},
    					Items:       pulumi.String(json4),
    					MaxItems:    pulumi.Int(32),
    					Maximum:     pulumi.Float64(64),
    					MinItems:    pulumi.Int(1),
    					Minimum:     pulumi.Float64(2),
    					Nullable:    pulumi.Bool(true),
    					PrefixItems: pulumi.String(json5),
    					Properties:  pulumi.String(json6),
    					Ref:         pulumi.String("#/defs/MyDefinition"),
    					Requireds: pulumi.StringArray{
    						pulumi.String("some_property"),
    					},
    					Title:       pulumi.String("Title"),
    					Type:        pulumi.String("ARRAY"),
    					UniqueItems: pulumi.Bool(true),
    				},
    				Response: &ces.ToolClientFunctionResponseArgs{
    					AdditionalProperties: pulumi.String(json7),
    					AnyOf:                pulumi.String(json8),
    					Default:              pulumi.String(json9),
    					Defs:                 pulumi.String(json10),
    					Description:          pulumi.String("schema description"),
    					Enums: pulumi.StringArray{
    						pulumi.String("VALUE_A"),
    						pulumi.String("VALUE_B"),
    					},
    					Items:       pulumi.String(json11),
    					MaxItems:    pulumi.Int(32),
    					Maximum:     pulumi.Float64(64),
    					MinItems:    pulumi.Int(1),
    					Minimum:     pulumi.Float64(2),
    					Nullable:    pulumi.Bool(true),
    					PrefixItems: pulumi.String(json12),
    					Properties:  pulumi.String(json13),
    					Ref:         pulumi.String("#/defs/MyDefinition"),
    					Requireds: pulumi.StringArray{
    						pulumi.String("some_property"),
    					},
    					Title:       pulumi.String("Title"),
    					Type:        pulumi.String("ARRAY"),
    					UniqueItems: pulumi.Bool(true),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.Json;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var my_app = new Gcp.Ces.App("my-app", new()
        {
            Location = "us",
            DisplayName = "my-app",
            AppId = "app-id",
            TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
            {
                TimeZone = "America/Los_Angeles",
            },
        });
    
        var cesToolClientFunctionBasic = new Gcp.Ces.Tool("ces_tool_client_function_basic", new()
        {
            Location = "us",
            App = my_app.Name,
            ToolId = "ces_tool_basic1",
            ExecutionType = "SYNCHRONOUS",
            ClientFunction = new Gcp.Ces.Inputs.ToolClientFunctionArgs
            {
                Name = "ces_tool_client_function_basic",
                Description = "example-description",
                Parameters = new Gcp.Ces.Inputs.ToolClientFunctionParametersArgs
                {
                    AdditionalProperties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "BOOLEAN",
                    }),
                    AnyOf = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "any_of option 1: string",
                        },
                    }),
                    Default = JsonSerializer.Serialize(false),
                    Defs = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["SimpleString"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A simple string definition",
                        },
                    }),
                    Description = "schema description",
                    Enums = new[]
                    {
                        "VALUE_A",
                        "VALUE_B",
                    },
                    Items = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "ARRAY",
                        ["description"] = "An array",
                    }),
                    MaxItems = 32,
                    Maximum = 64,
                    MinItems = 1,
                    Minimum = 2,
                    Nullable = true,
                    PrefixItems = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "ARRAY",
                            ["description"] = "prefix item 1",
                        },
                    }),
                    Properties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["name"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A name",
                        },
                    }),
                    Ref = "#/defs/MyDefinition",
                    Requireds = new[]
                    {
                        "some_property",
                    },
                    Title = "Title",
                    Type = "ARRAY",
                    UniqueItems = true,
                },
                Response = new Gcp.Ces.Inputs.ToolClientFunctionResponseArgs
                {
                    AdditionalProperties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "BOOLEAN",
                    }),
                    AnyOf = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "any_of option 1: string",
                        },
                    }),
                    Default = JsonSerializer.Serialize(false),
                    Defs = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["SimpleString"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A simple string definition",
                        },
                    }),
                    Description = "schema description",
                    Enums = new[]
                    {
                        "VALUE_A",
                        "VALUE_B",
                    },
                    Items = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "ARRAY",
                        ["description"] = "An array",
                    }),
                    MaxItems = 32,
                    Maximum = 64,
                    MinItems = 1,
                    Minimum = 2,
                    Nullable = true,
                    PrefixItems = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "ARRAY",
                            ["description"] = "prefix item 1",
                        },
                    }),
                    Properties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["name"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A name",
                        },
                    }),
                    Ref = "#/defs/MyDefinition",
                    Requireds = new[]
                    {
                        "some_property",
                    },
                    Title = "Title",
                    Type = "ARRAY",
                    UniqueItems = true,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.ces.App;
    import com.pulumi.gcp.ces.AppArgs;
    import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
    import com.pulumi.gcp.ces.Tool;
    import com.pulumi.gcp.ces.ToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolClientFunctionArgs;
    import com.pulumi.gcp.ces.inputs.ToolClientFunctionParametersArgs;
    import com.pulumi.gcp.ces.inputs.ToolClientFunctionResponseArgs;
    import static com.pulumi.codegen.internal.Serialization.*;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var my_app = new App("my-app", AppArgs.builder()
                .location("us")
                .displayName("my-app")
                .appId("app-id")
                .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                    .timeZone("America/Los_Angeles")
                    .build())
                .build());
    
            var cesToolClientFunctionBasic = new Tool("cesToolClientFunctionBasic", ToolArgs.builder()
                .location("us")
                .app(my_app.name())
                .toolId("ces_tool_basic1")
                .executionType("SYNCHRONOUS")
                .clientFunction(ToolClientFunctionArgs.builder()
                    .name("ces_tool_client_function_basic")
                    .description("example-description")
                    .parameters(ToolClientFunctionParametersArgs.builder()
                        .additionalProperties(serializeJson(
                            jsonObject(
                                jsonProperty("type", "BOOLEAN")
                            )))
                        .anyOf(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "STRING"),
                                jsonProperty("description", "any_of option 1: string")
                            ))))
                        .default_(serializeJson(
                            false))
                        .defs(serializeJson(
                            jsonObject(
                                jsonProperty("SimpleString", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A simple string definition")
                                ))
                            )))
                        .description("schema description")
                        .enums(                    
                            "VALUE_A",
                            "VALUE_B")
                        .items(serializeJson(
                            jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "An array")
                            )))
                        .maxItems(32)
                        .maximum(64.0)
                        .minItems(1)
                        .minimum(2.0)
                        .nullable(true)
                        .prefixItems(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "prefix item 1")
                            ))))
                        .properties(serializeJson(
                            jsonObject(
                                jsonProperty("name", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A name")
                                ))
                            )))
                        .ref("#/defs/MyDefinition")
                        .requireds("some_property")
                        .title("Title")
                        .type("ARRAY")
                        .uniqueItems(true)
                        .build())
                    .response(ToolClientFunctionResponseArgs.builder()
                        .additionalProperties(serializeJson(
                            jsonObject(
                                jsonProperty("type", "BOOLEAN")
                            )))
                        .anyOf(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "STRING"),
                                jsonProperty("description", "any_of option 1: string")
                            ))))
                        .default_(serializeJson(
                            false))
                        .defs(serializeJson(
                            jsonObject(
                                jsonProperty("SimpleString", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A simple string definition")
                                ))
                            )))
                        .description("schema description")
                        .enums(                    
                            "VALUE_A",
                            "VALUE_B")
                        .items(serializeJson(
                            jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "An array")
                            )))
                        .maxItems(32)
                        .maximum(64.0)
                        .minItems(1)
                        .minimum(2.0)
                        .nullable(true)
                        .prefixItems(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "prefix item 1")
                            ))))
                        .properties(serializeJson(
                            jsonObject(
                                jsonProperty("name", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A name")
                                ))
                            )))
                        .ref("#/defs/MyDefinition")
                        .requireds("some_property")
                        .title("Title")
                        .type("ARRAY")
                        .uniqueItems(true)
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-app:
        type: gcp:ces:App
        properties:
          location: us
          displayName: my-app
          appId: app-id
          timeZoneSettings:
            timeZone: America/Los_Angeles
      cesToolClientFunctionBasic:
        type: gcp:ces:Tool
        name: ces_tool_client_function_basic
        properties:
          location: us
          app: ${["my-app"].name}
          toolId: ces_tool_basic1
          executionType: SYNCHRONOUS
          clientFunction:
            name: ces_tool_client_function_basic
            description: example-description
            parameters:
              additionalProperties:
                fn::toJSON:
                  type: BOOLEAN
              anyOf:
                fn::toJSON:
                  - type: STRING
                    description: 'any_of option 1: string'
              default:
                fn::toJSON: false
              defs:
                fn::toJSON:
                  SimpleString:
                    type: STRING
                    description: A simple string definition
              description: schema description
              enums:
                - VALUE_A
                - VALUE_B
              items:
                fn::toJSON:
                  type: ARRAY
                  description: An array
              maxItems: 32
              maximum: 64
              minItems: 1
              minimum: 2
              nullable: true
              prefixItems:
                fn::toJSON:
                  - type: ARRAY
                    description: prefix item 1
              properties:
                fn::toJSON:
                  name:
                    type: STRING
                    description: A name
              ref: '#/defs/MyDefinition'
              requireds:
                - some_property
              title: Title
              type: ARRAY
              uniqueItems: true
            response:
              additionalProperties:
                fn::toJSON:
                  type: BOOLEAN
              anyOf:
                fn::toJSON:
                  - type: STRING
                    description: 'any_of option 1: string'
              default:
                fn::toJSON: false
              defs:
                fn::toJSON:
                  SimpleString:
                    type: STRING
                    description: A simple string definition
              description: schema description
              enums:
                - VALUE_A
                - VALUE_B
              items:
                fn::toJSON:
                  type: ARRAY
                  description: An array
              maxItems: 32
              maximum: 64
              minItems: 1
              minimum: 2
              nullable: true
              prefixItems:
                fn::toJSON:
                  - type: ARRAY
                    description: prefix item 1
              properties:
                fn::toJSON:
                  name:
                    type: STRING
                    description: A name
              ref: '#/defs/MyDefinition'
              requireds:
                - some_property
              title: Title
              type: ARRAY
              uniqueItems: true
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_ces_app" "my-app" {
      location     = "us"
      display_name = "my-app"
      app_id       = "app-id"
      time_zone_settings = {
        time_zone = "America/Los_Angeles"
      }
    }
    resource "gcp_ces_tool" "ces_tool_client_function_basic" {
      location       = "us"
      app            = gcp_ces_app.my-app.name
      tool_id        = "ces_tool_basic1"
      execution_type = "SYNCHRONOUS"
      client_function = {
        name        = "ces_tool_client_function_basic"
        description = "example-description"
        parameters = {
          additional_properties = jsonencode({
            "type" = "BOOLEAN"
          })
          any_of = jsonencode([{
            "type"        = "STRING"
            "description" = "any_of option 1: string"
          }])
          default = jsonencode(false)
          defs = jsonencode({
            "SimpleString" = {
              "type"        = "STRING"
              "description" = "A simple string definition"
            }
          })
          description = "schema description"
          enums       = ["VALUE_A", "VALUE_B"]
          items = jsonencode({
            "type"        = "ARRAY"
            "description" = "An array"
          })
          max_items = 32
          maximum   = 64
          min_items = 1
          minimum   = 2
          nullable  = true
          prefix_items = jsonencode([{
            "type"        = "ARRAY"
            "description" = "prefix item 1"
          }])
          properties = jsonencode({
            "name" = {
              "type"        = "STRING"
              "description" = "A name"
            }
          })
          ref          = "#/defs/MyDefinition"
          requireds    = ["some_property"]
          title        = "Title"
          type         = "ARRAY"
          unique_items = true
        }
        response = {
          additional_properties = jsonencode({
            "type" = "BOOLEAN"
          })
          any_of = jsonencode([{
            "type"        = "STRING"
            "description" = "any_of option 1: string"
          }])
          default = jsonencode(false)
          defs = jsonencode({
            "SimpleString" = {
              "type"        = "STRING"
              "description" = "A simple string definition"
            }
          })
          description = "schema description"
          enums       = ["VALUE_A", "VALUE_B"]
          items = jsonencode({
            "type"        = "ARRAY"
            "description" = "An array"
          })
          max_items = 32
          maximum   = 64
          min_items = 1
          minimum   = 2
          nullable  = true
          prefix_items = jsonencode([{
            "type"        = "ARRAY"
            "description" = "prefix item 1"
          }])
          properties = jsonencode({
            "name" = {
              "type"        = "STRING"
              "description" = "A name"
            }
          })
          ref          = "#/defs/MyDefinition"
          requireds    = ["some_property"]
          title        = "Title"
          type         = "ARRAY"
          unique_items = true
        }
      }
    }
    

    Ces Tool Data Store Tool Engine Source Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const basic = new gcp.discoveryengine.DataStore("basic", {
        location: "global",
        dataStoreId: "tool_data_store_id",
        displayName: "tf-test-structured-datastore",
        industryVertical: "GENERIC",
        contentConfig: "NO_CONTENT",
        solutionTypes: ["SOLUTION_TYPE_SEARCH"],
        createAdvancedSiteSearch: false,
    });
    const basicSearchEngine = new gcp.discoveryengine.SearchEngine("basic", {
        engineId: "tool_engine_id",
        collectionId: "default_collection",
        location: basic.location,
        displayName: "Example Display Name",
        dataStoreIds: [basic.dataStoreId],
        searchEngineConfig: {},
    });
    const my_app = new gcp.ces.App("my-app", {
        location: "us",
        displayName: "my-app",
        appId: "app-id",
        timeZoneSettings: {
            timeZone: "America/Los_Angeles",
        },
    });
    const cesToolDataStoreToolEngineSourceBasic = new gcp.ces.Tool("ces_tool_data_store_tool_engine_source_basic", {
        location: "us",
        app: my_app.name,
        toolId: "ces_tool_basic2",
        executionType: "SYNCHRONOUS",
        dataStoreTool: {
            name: "example-tool",
            description: "example-description",
            boostSpecs: [{
                dataStores: [basic.name],
                specs: [{
                    conditionBoostSpecs: [{
                        condition: "(lang_code: ANY(\"en\", \"fr\"))",
                        boost: 1,
                        boostControlSpec: {
                            fieldName: "example-field",
                            attributeType: "NUMERICAL",
                            interpolationType: "LINEAR",
                            controlPoints: [{
                                attributeValue: "1",
                                boostAmount: 1,
                            }],
                        },
                    }],
                }],
            }],
            modalityConfigs: [{
                modalityType: "TEXT",
                rewriterConfig: {
                    modelSettings: {
                        model: "gemini-3.0-flash-001",
                        temperature: 1,
                    },
                    prompt: "example-prompt",
                    disabled: false,
                },
                summarizationConfig: {
                    modelSettings: {
                        model: "gemini-3.0-flash-001",
                        temperature: 1,
                    },
                    prompt: "example-prompt",
                    disabled: false,
                },
                groundingConfig: {
                    groundingLevel: 3,
                    disabled: false,
                },
            }],
            engineSource: {
                engine: basicSearchEngine.name,
                dataStoreSources: [{
                    filter: "example_field: ANY(\"specific_example\")",
                    dataStore: {
                        name: basic.name,
                    },
                }],
                filter: "example_field: ANY(\"specific_example\")",
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    basic = gcp.discoveryengine.DataStore("basic",
        location="global",
        data_store_id="tool_data_store_id",
        display_name="tf-test-structured-datastore",
        industry_vertical="GENERIC",
        content_config="NO_CONTENT",
        solution_types=["SOLUTION_TYPE_SEARCH"],
        create_advanced_site_search=False)
    basic_search_engine = gcp.discoveryengine.SearchEngine("basic",
        engine_id="tool_engine_id",
        collection_id="default_collection",
        location=basic.location,
        display_name="Example Display Name",
        data_store_ids=[basic.data_store_id],
        search_engine_config={})
    my_app = gcp.ces.App("my-app",
        location="us",
        display_name="my-app",
        app_id="app-id",
        time_zone_settings={
            "time_zone": "America/Los_Angeles",
        })
    ces_tool_data_store_tool_engine_source_basic = gcp.ces.Tool("ces_tool_data_store_tool_engine_source_basic",
        location="us",
        app=my_app.name,
        tool_id="ces_tool_basic2",
        execution_type="SYNCHRONOUS",
        data_store_tool={
            "name": "example-tool",
            "description": "example-description",
            "boost_specs": [{
                "data_stores": [basic.name],
                "specs": [{
                    "condition_boost_specs": [{
                        "condition": "(lang_code: ANY(\"en\", \"fr\"))",
                        "boost": float(1),
                        "boost_control_spec": {
                            "field_name": "example-field",
                            "attribute_type": "NUMERICAL",
                            "interpolation_type": "LINEAR",
                            "control_points": [{
                                "attribute_value": "1",
                                "boost_amount": float(1),
                            }],
                        },
                    }],
                }],
            }],
            "modality_configs": [{
                "modality_type": "TEXT",
                "rewriter_config": {
                    "model_settings": {
                        "model": "gemini-3.0-flash-001",
                        "temperature": float(1),
                    },
                    "prompt": "example-prompt",
                    "disabled": False,
                },
                "summarization_config": {
                    "model_settings": {
                        "model": "gemini-3.0-flash-001",
                        "temperature": float(1),
                    },
                    "prompt": "example-prompt",
                    "disabled": False,
                },
                "grounding_config": {
                    "grounding_level": float(3),
                    "disabled": False,
                },
            }],
            "engine_source": {
                "engine": basic_search_engine.name,
                "data_store_sources": [{
                    "filter": "example_field: ANY(\"specific_example\")",
                    "data_store": {
                        "name": basic.name,
                    },
                }],
                "filter": "example_field: ANY(\"specific_example\")",
            },
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/discoveryengine"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		basic, err := discoveryengine.NewDataStore(ctx, "basic", &discoveryengine.DataStoreArgs{
    			Location:         pulumi.String("global"),
    			DataStoreId:      pulumi.String("tool_data_store_id"),
    			DisplayName:      pulumi.String("tf-test-structured-datastore"),
    			IndustryVertical: pulumi.String("GENERIC"),
    			ContentConfig:    pulumi.String("NO_CONTENT"),
    			SolutionTypes: pulumi.StringArray{
    				pulumi.String("SOLUTION_TYPE_SEARCH"),
    			},
    			CreateAdvancedSiteSearch: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		basicSearchEngine, err := discoveryengine.NewSearchEngine(ctx, "basic", &discoveryengine.SearchEngineArgs{
    			EngineId:     pulumi.String("tool_engine_id"),
    			CollectionId: pulumi.String("default_collection"),
    			Location:     basic.Location,
    			DisplayName:  pulumi.String("Example Display Name"),
    			DataStoreIds: pulumi.StringArray{
    				basic.DataStoreId,
    			},
    			SearchEngineConfig: &discoveryengine.SearchEngineSearchEngineConfigArgs{},
    		})
    		if err != nil {
    			return err
    		}
    		my_app, err := ces.NewApp(ctx, "my-app", &ces.AppArgs{
    			Location:    pulumi.String("us"),
    			DisplayName: pulumi.String("my-app"),
    			AppId:       pulumi.String("app-id"),
    			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
    				TimeZone: pulumi.String("America/Los_Angeles"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ces.NewTool(ctx, "ces_tool_data_store_tool_engine_source_basic", &ces.ToolArgs{
    			Location:      pulumi.String("us"),
    			App:           my_app.Name,
    			ToolId:        pulumi.String("ces_tool_basic2"),
    			ExecutionType: pulumi.String("SYNCHRONOUS"),
    			DataStoreTool: &ces.ToolDataStoreToolArgs{
    				Name:        pulumi.String("example-tool"),
    				Description: pulumi.String("example-description"),
    				BoostSpecs: ces.ToolDataStoreToolBoostSpecArray{
    					&ces.ToolDataStoreToolBoostSpecArgs{
    						DataStores: pulumi.StringArray{
    							basic.Name,
    						},
    						Specs: ces.ToolDataStoreToolBoostSpecSpecArray{
    							&ces.ToolDataStoreToolBoostSpecSpecArgs{
    								ConditionBoostSpecs: ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecArray{
    									&ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs{
    										Condition: pulumi.String("(lang_code: ANY(\"en\", \"fr\"))"),
    										Boost:     pulumi.Float64(1),
    										BoostControlSpec: &ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs{
    											FieldName:         pulumi.String("example-field"),
    											AttributeType:     pulumi.String("NUMERICAL"),
    											InterpolationType: pulumi.String("LINEAR"),
    											ControlPoints: ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArray{
    												&ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs{
    													AttributeValue: pulumi.String("1"),
    													BoostAmount:    pulumi.Float64(1),
    												},
    											},
    										},
    									},
    								},
    							},
    						},
    					},
    				},
    				ModalityConfigs: ces.ToolDataStoreToolModalityConfigArray{
    					&ces.ToolDataStoreToolModalityConfigArgs{
    						ModalityType: pulumi.String("TEXT"),
    						RewriterConfig: &ces.ToolDataStoreToolModalityConfigRewriterConfigArgs{
    							ModelSettings: &ces.ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs{
    								Model:       pulumi.String("gemini-3.0-flash-001"),
    								Temperature: pulumi.Float64(1),
    							},
    							Prompt:   pulumi.String("example-prompt"),
    							Disabled: pulumi.Bool(false),
    						},
    						SummarizationConfig: &ces.ToolDataStoreToolModalityConfigSummarizationConfigArgs{
    							ModelSettings: &ces.ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs{
    								Model:       pulumi.String("gemini-3.0-flash-001"),
    								Temperature: pulumi.Float64(1),
    							},
    							Prompt:   pulumi.String("example-prompt"),
    							Disabled: pulumi.Bool(false),
    						},
    						GroundingConfig: &ces.ToolDataStoreToolModalityConfigGroundingConfigArgs{
    							GroundingLevel: pulumi.Float64(3),
    							Disabled:       pulumi.Bool(false),
    						},
    					},
    				},
    				EngineSource: &ces.ToolDataStoreToolEngineSourceArgs{
    					Engine: basicSearchEngine.Name,
    					DataStoreSources: ces.ToolDataStoreToolEngineSourceDataStoreSourceArray{
    						&ces.ToolDataStoreToolEngineSourceDataStoreSourceArgs{
    							Filter: pulumi.String("example_field: ANY(\"specific_example\")"),
    							DataStore: &ces.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs{
    								Name: basic.Name,
    							},
    						},
    					},
    					Filter: pulumi.String("example_field: ANY(\"specific_example\")"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var basic = new Gcp.DiscoveryEngine.DataStore("basic", new()
        {
            Location = "global",
            DataStoreId = "tool_data_store_id",
            DisplayName = "tf-test-structured-datastore",
            IndustryVertical = "GENERIC",
            ContentConfig = "NO_CONTENT",
            SolutionTypes = new[]
            {
                "SOLUTION_TYPE_SEARCH",
            },
            CreateAdvancedSiteSearch = false,
        });
    
        var basicSearchEngine = new Gcp.DiscoveryEngine.SearchEngine("basic", new()
        {
            EngineId = "tool_engine_id",
            CollectionId = "default_collection",
            Location = basic.Location,
            DisplayName = "Example Display Name",
            DataStoreIds = new[]
            {
                basic.DataStoreId,
            },
            SearchEngineConfig = null,
        });
    
        var my_app = new Gcp.Ces.App("my-app", new()
        {
            Location = "us",
            DisplayName = "my-app",
            AppId = "app-id",
            TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
            {
                TimeZone = "America/Los_Angeles",
            },
        });
    
        var cesToolDataStoreToolEngineSourceBasic = new Gcp.Ces.Tool("ces_tool_data_store_tool_engine_source_basic", new()
        {
            Location = "us",
            App = my_app.Name,
            ToolId = "ces_tool_basic2",
            ExecutionType = "SYNCHRONOUS",
            DataStoreTool = new Gcp.Ces.Inputs.ToolDataStoreToolArgs
            {
                Name = "example-tool",
                Description = "example-description",
                BoostSpecs = new[]
                {
                    new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecArgs
                    {
                        DataStores = new[]
                        {
                            basic.Name,
                        },
                        Specs = new[]
                        {
                            new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecArgs
                            {
                                ConditionBoostSpecs = new[]
                                {
                                    new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs
                                    {
                                        Condition = "(lang_code: ANY(\"en\", \"fr\"))",
                                        Boost = 1,
                                        BoostControlSpec = new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs
                                        {
                                            FieldName = "example-field",
                                            AttributeType = "NUMERICAL",
                                            InterpolationType = "LINEAR",
                                            ControlPoints = new[]
                                            {
                                                new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs
                                                {
                                                    AttributeValue = "1",
                                                    BoostAmount = 1,
                                                },
                                            },
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
                ModalityConfigs = new[]
                {
                    new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigArgs
                    {
                        ModalityType = "TEXT",
                        RewriterConfig = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigRewriterConfigArgs
                        {
                            ModelSettings = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs
                            {
                                Model = "gemini-3.0-flash-001",
                                Temperature = 1,
                            },
                            Prompt = "example-prompt",
                            Disabled = false,
                        },
                        SummarizationConfig = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigSummarizationConfigArgs
                        {
                            ModelSettings = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs
                            {
                                Model = "gemini-3.0-flash-001",
                                Temperature = 1,
                            },
                            Prompt = "example-prompt",
                            Disabled = false,
                        },
                        GroundingConfig = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigGroundingConfigArgs
                        {
                            GroundingLevel = 3,
                            Disabled = false,
                        },
                    },
                },
                EngineSource = new Gcp.Ces.Inputs.ToolDataStoreToolEngineSourceArgs
                {
                    Engine = basicSearchEngine.Name,
                    DataStoreSources = new[]
                    {
                        new Gcp.Ces.Inputs.ToolDataStoreToolEngineSourceDataStoreSourceArgs
                        {
                            Filter = "example_field: ANY(\"specific_example\")",
                            DataStore = new Gcp.Ces.Inputs.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs
                            {
                                Name = basic.Name,
                            },
                        },
                    },
                    Filter = "example_field: ANY(\"specific_example\")",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.discoveryengine.DataStore;
    import com.pulumi.gcp.discoveryengine.DataStoreArgs;
    import com.pulumi.gcp.discoveryengine.SearchEngine;
    import com.pulumi.gcp.discoveryengine.SearchEngineArgs;
    import com.pulumi.gcp.discoveryengine.inputs.SearchEngineSearchEngineConfigArgs;
    import com.pulumi.gcp.ces.App;
    import com.pulumi.gcp.ces.AppArgs;
    import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
    import com.pulumi.gcp.ces.Tool;
    import com.pulumi.gcp.ces.ToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolBoostSpecArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolBoostSpecSpecArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolModalityConfigArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolModalityConfigRewriterConfigArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolModalityConfigSummarizationConfigArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolModalityConfigGroundingConfigArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolEngineSourceArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolEngineSourceDataStoreSourceArgs;
    import com.pulumi.gcp.ces.inputs.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var basic = new DataStore("basic", DataStoreArgs.builder()
                .location("global")
                .dataStoreId("tool_data_store_id")
                .displayName("tf-test-structured-datastore")
                .industryVertical("GENERIC")
                .contentConfig("NO_CONTENT")
                .solutionTypes("SOLUTION_TYPE_SEARCH")
                .createAdvancedSiteSearch(false)
                .build());
    
            var basicSearchEngine = new SearchEngine("basicSearchEngine", SearchEngineArgs.builder()
                .engineId("tool_engine_id")
                .collectionId("default_collection")
                .location(basic.location())
                .displayName("Example Display Name")
                .dataStoreIds(basic.dataStoreId())
                .searchEngineConfig(SearchEngineSearchEngineConfigArgs.builder()
                    .build())
                .build());
    
            var my_app = new App("my-app", AppArgs.builder()
                .location("us")
                .displayName("my-app")
                .appId("app-id")
                .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                    .timeZone("America/Los_Angeles")
                    .build())
                .build());
    
            var cesToolDataStoreToolEngineSourceBasic = new Tool("cesToolDataStoreToolEngineSourceBasic", ToolArgs.builder()
                .location("us")
                .app(my_app.name())
                .toolId("ces_tool_basic2")
                .executionType("SYNCHRONOUS")
                .dataStoreTool(ToolDataStoreToolArgs.builder()
                    .name("example-tool")
                    .description("example-description")
                    .boostSpecs(ToolDataStoreToolBoostSpecArgs.builder()
                        .dataStores(basic.name())
                        .specs(ToolDataStoreToolBoostSpecSpecArgs.builder()
                            .conditionBoostSpecs(ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs.builder()
                                .condition("(lang_code: ANY(\"en\", \"fr\"))")
                                .boost(1.0)
                                .boostControlSpec(ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs.builder()
                                    .fieldName("example-field")
                                    .attributeType("NUMERICAL")
                                    .interpolationType("LINEAR")
                                    .controlPoints(ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs.builder()
                                        .attributeValue("1")
                                        .boostAmount(1.0)
                                        .build())
                                    .build())
                                .build())
                            .build())
                        .build())
                    .modalityConfigs(ToolDataStoreToolModalityConfigArgs.builder()
                        .modalityType("TEXT")
                        .rewriterConfig(ToolDataStoreToolModalityConfigRewriterConfigArgs.builder()
                            .modelSettings(ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs.builder()
                                .model("gemini-3.0-flash-001")
                                .temperature(1.0)
                                .build())
                            .prompt("example-prompt")
                            .disabled(false)
                            .build())
                        .summarizationConfig(ToolDataStoreToolModalityConfigSummarizationConfigArgs.builder()
                            .modelSettings(ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs.builder()
                                .model("gemini-3.0-flash-001")
                                .temperature(1.0)
                                .build())
                            .prompt("example-prompt")
                            .disabled(false)
                            .build())
                        .groundingConfig(ToolDataStoreToolModalityConfigGroundingConfigArgs.builder()
                            .groundingLevel(3.0)
                            .disabled(false)
                            .build())
                        .build())
                    .engineSource(ToolDataStoreToolEngineSourceArgs.builder()
                        .engine(basicSearchEngine.name())
                        .dataStoreSources(ToolDataStoreToolEngineSourceDataStoreSourceArgs.builder()
                            .filter("example_field: ANY(\"specific_example\")")
                            .dataStore(ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs.builder()
                                .name(basic.name())
                                .build())
                            .build())
                        .filter("example_field: ANY(\"specific_example\")")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      basic:
        type: gcp:discoveryengine:DataStore
        properties:
          location: global
          dataStoreId: tool_data_store_id
          displayName: tf-test-structured-datastore
          industryVertical: GENERIC
          contentConfig: NO_CONTENT
          solutionTypes:
            - SOLUTION_TYPE_SEARCH
          createAdvancedSiteSearch: false
      basicSearchEngine:
        type: gcp:discoveryengine:SearchEngine
        name: basic
        properties:
          engineId: tool_engine_id
          collectionId: default_collection
          location: ${basic.location}
          displayName: Example Display Name
          dataStoreIds:
            - ${basic.dataStoreId}
          searchEngineConfig: {}
      my-app:
        type: gcp:ces:App
        properties:
          location: us
          displayName: my-app
          appId: app-id
          timeZoneSettings:
            timeZone: America/Los_Angeles
      cesToolDataStoreToolEngineSourceBasic:
        type: gcp:ces:Tool
        name: ces_tool_data_store_tool_engine_source_basic
        properties:
          location: us
          app: ${["my-app"].name}
          toolId: ces_tool_basic2
          executionType: SYNCHRONOUS
          dataStoreTool:
            name: example-tool
            description: example-description
            boostSpecs:
              - dataStores:
                  - ${basic.name}
                specs:
                  - conditionBoostSpecs:
                      - condition: '(lang_code: ANY("en", "fr"))'
                        boost: 1
                        boostControlSpec:
                          fieldName: example-field
                          attributeType: NUMERICAL
                          interpolationType: LINEAR
                          controlPoints:
                            - attributeValue: 1
                              boostAmount: 1
            modalityConfigs:
              - modalityType: TEXT
                rewriterConfig:
                  modelSettings:
                    model: gemini-3.0-flash-001
                    temperature: 1
                  prompt: example-prompt
                  disabled: false
                summarizationConfig:
                  modelSettings:
                    model: gemini-3.0-flash-001
                    temperature: 1
                  prompt: example-prompt
                  disabled: false
                groundingConfig:
                  groundingLevel: 3
                  disabled: false
            engineSource:
              engine: ${basicSearchEngine.name}
              dataStoreSources:
                - filter: 'example_field: ANY("specific_example")'
                  dataStore:
                    name: ${basic.name}
              filter: 'example_field: ANY("specific_example")'
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_discoveryengine_datastore" "basic" {
      location                    = "global"
      data_store_id               = "tool_data_store_id"
      display_name                = "tf-test-structured-datastore"
      industry_vertical           = "GENERIC"
      content_config              = "NO_CONTENT"
      solution_types              = ["SOLUTION_TYPE_SEARCH"]
      create_advanced_site_search = false
    }
    resource "gcp_discoveryengine_searchengine" "basic" {
      engine_id            = "tool_engine_id"
      collection_id        = "default_collection"
      location             = gcp_discoveryengine_datastore.basic.location
      display_name         = "Example Display Name"
      data_store_ids       = [gcp_discoveryengine_datastore.basic.data_store_id]
      search_engine_config = {}
    }
    resource "gcp_ces_app" "my-app" {
      location     = "us"
      display_name = "my-app"
      app_id       = "app-id"
      time_zone_settings = {
        time_zone = "America/Los_Angeles"
      }
    }
    resource "gcp_ces_tool" "ces_tool_data_store_tool_engine_source_basic" {
      location       = "us"
      app            = gcp_ces_app.my-app.name
      tool_id        = "ces_tool_basic2"
      execution_type = "SYNCHRONOUS"
      data_store_tool = {
        name        = "example-tool"
        description = "example-description"
        boost_specs = [{
          "dataStores" = [gcp_discoveryengine_datastore.basic.name]
          "specs" = [{
            "conditionBoostSpecs" = [{
              "condition" = "(lang_code: ANY(\"en\", \"fr\"))"
              "boost"     = 1
              "boostControlSpec" = {
                "fieldName"         = "example-field"
                "attributeType"     = "NUMERICAL"
                "interpolationType" = "LINEAR"
                "controlPoints" = [{
                  "attributeValue" = 1
                  "boostAmount"    = 1
                }]
              }
            }]
          }]
        }]
        modality_configs = [{
          "modalityType" = "TEXT"
          "rewriterConfig" = {
            "modelSettings" = {
              "model"       = "gemini-3.0-flash-001"
              "temperature" = 1
            }
            "prompt"   = "example-prompt"
            "disabled" = false
          }
          "summarizationConfig" = {
            "modelSettings" = {
              "model"       = "gemini-3.0-flash-001"
              "temperature" = 1
            }
            "prompt"   = "example-prompt"
            "disabled" = false
          }
          "groundingConfig" = {
            "groundingLevel" = 3
            "disabled"       = false
          }
        }]
        engine_source = {
          engine = gcp_discoveryengine_searchengine.basic.name
          data_store_sources = [{
            "filter" = "example_field: ANY(\"specific_example\")"
            "dataStore" = {
              "name" = gcp_discoveryengine_datastore.basic.name
            }
          }]
          filter = "example_field: ANY(\"specific_example\")"
        }
      }
    }
    

    Ces Tool Google Search Tool Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const my_app = new gcp.ces.App("my-app", {
        location: "us",
        displayName: "my-app",
        appId: "app-id",
        timeZoneSettings: {
            timeZone: "America/Los_Angeles",
        },
    });
    const cesToolGoogleSearchToolBasic = new gcp.ces.Tool("ces_tool_google_search_tool_basic", {
        location: "us",
        app: my_app.name,
        toolId: "ces_tool_basic3",
        executionType: "SYNCHRONOUS",
        googleSearchTool: {
            name: "example-tool",
            contextUrls: [
                "example.com",
                "example2.com",
            ],
            description: "example-description",
            excludeDomains: [
                "example.com",
                "example2.com",
            ],
            preferredDomains: [
                "example3.com",
                "example4.com",
            ],
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    my_app = gcp.ces.App("my-app",
        location="us",
        display_name="my-app",
        app_id="app-id",
        time_zone_settings={
            "time_zone": "America/Los_Angeles",
        })
    ces_tool_google_search_tool_basic = gcp.ces.Tool("ces_tool_google_search_tool_basic",
        location="us",
        app=my_app.name,
        tool_id="ces_tool_basic3",
        execution_type="SYNCHRONOUS",
        google_search_tool={
            "name": "example-tool",
            "context_urls": [
                "example.com",
                "example2.com",
            ],
            "description": "example-description",
            "exclude_domains": [
                "example.com",
                "example2.com",
            ],
            "preferred_domains": [
                "example3.com",
                "example4.com",
            ],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		my_app, err := ces.NewApp(ctx, "my-app", &ces.AppArgs{
    			Location:    pulumi.String("us"),
    			DisplayName: pulumi.String("my-app"),
    			AppId:       pulumi.String("app-id"),
    			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
    				TimeZone: pulumi.String("America/Los_Angeles"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ces.NewTool(ctx, "ces_tool_google_search_tool_basic", &ces.ToolArgs{
    			Location:      pulumi.String("us"),
    			App:           my_app.Name,
    			ToolId:        pulumi.String("ces_tool_basic3"),
    			ExecutionType: pulumi.String("SYNCHRONOUS"),
    			GoogleSearchTool: &ces.ToolGoogleSearchToolArgs{
    				Name: pulumi.String("example-tool"),
    				ContextUrls: pulumi.StringArray{
    					pulumi.String("example.com"),
    					pulumi.String("example2.com"),
    				},
    				Description: pulumi.String("example-description"),
    				ExcludeDomains: pulumi.StringArray{
    					pulumi.String("example.com"),
    					pulumi.String("example2.com"),
    				},
    				PreferredDomains: pulumi.StringArray{
    					pulumi.String("example3.com"),
    					pulumi.String("example4.com"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var my_app = new Gcp.Ces.App("my-app", new()
        {
            Location = "us",
            DisplayName = "my-app",
            AppId = "app-id",
            TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
            {
                TimeZone = "America/Los_Angeles",
            },
        });
    
        var cesToolGoogleSearchToolBasic = new Gcp.Ces.Tool("ces_tool_google_search_tool_basic", new()
        {
            Location = "us",
            App = my_app.Name,
            ToolId = "ces_tool_basic3",
            ExecutionType = "SYNCHRONOUS",
            GoogleSearchTool = new Gcp.Ces.Inputs.ToolGoogleSearchToolArgs
            {
                Name = "example-tool",
                ContextUrls = new[]
                {
                    "example.com",
                    "example2.com",
                },
                Description = "example-description",
                ExcludeDomains = new[]
                {
                    "example.com",
                    "example2.com",
                },
                PreferredDomains = new[]
                {
                    "example3.com",
                    "example4.com",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.ces.App;
    import com.pulumi.gcp.ces.AppArgs;
    import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
    import com.pulumi.gcp.ces.Tool;
    import com.pulumi.gcp.ces.ToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolGoogleSearchToolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var my_app = new App("my-app", AppArgs.builder()
                .location("us")
                .displayName("my-app")
                .appId("app-id")
                .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                    .timeZone("America/Los_Angeles")
                    .build())
                .build());
    
            var cesToolGoogleSearchToolBasic = new Tool("cesToolGoogleSearchToolBasic", ToolArgs.builder()
                .location("us")
                .app(my_app.name())
                .toolId("ces_tool_basic3")
                .executionType("SYNCHRONOUS")
                .googleSearchTool(ToolGoogleSearchToolArgs.builder()
                    .name("example-tool")
                    .contextUrls(                
                        "example.com",
                        "example2.com")
                    .description("example-description")
                    .excludeDomains(                
                        "example.com",
                        "example2.com")
                    .preferredDomains(                
                        "example3.com",
                        "example4.com")
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-app:
        type: gcp:ces:App
        properties:
          location: us
          displayName: my-app
          appId: app-id
          timeZoneSettings:
            timeZone: America/Los_Angeles
      cesToolGoogleSearchToolBasic:
        type: gcp:ces:Tool
        name: ces_tool_google_search_tool_basic
        properties:
          location: us
          app: ${["my-app"].name}
          toolId: ces_tool_basic3
          executionType: SYNCHRONOUS
          googleSearchTool:
            name: example-tool
            contextUrls:
              - example.com
              - example2.com
            description: example-description
            excludeDomains:
              - example.com
              - example2.com
            preferredDomains:
              - example3.com
              - example4.com
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_ces_app" "my-app" {
      location     = "us"
      display_name = "my-app"
      app_id       = "app-id"
      time_zone_settings = {
        time_zone = "America/Los_Angeles"
      }
    }
    resource "gcp_ces_tool" "ces_tool_google_search_tool_basic" {
      location       = "us"
      app            = gcp_ces_app.my-app.name
      tool_id        = "ces_tool_basic3"
      execution_type = "SYNCHRONOUS"
      google_search_tool = {
        name              = "example-tool"
        context_urls      = ["example.com", "example2.com"]
        description       = "example-description"
        exclude_domains   = ["example.com", "example2.com"]
        preferred_domains = ["example3.com", "example4.com"]
      }
    }
    

    Ces Tool Python Function Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const my_app = new gcp.ces.App("my-app", {
        location: "us",
        displayName: "my-app",
        appId: "app-id",
        timeZoneSettings: {
            timeZone: "America/Los_Angeles",
        },
    });
    const cesToolPythonFunctionBasic = new gcp.ces.Tool("ces_tool_python_function_basic", {
        location: "us",
        app: my_app.name,
        toolId: "ces_tool_basic4",
        executionType: "SYNCHRONOUS",
        pythonFunction: {
            name: "example_function",
            pythonCode: "def example_function() -> int: return 0",
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    my_app = gcp.ces.App("my-app",
        location="us",
        display_name="my-app",
        app_id="app-id",
        time_zone_settings={
            "time_zone": "America/Los_Angeles",
        })
    ces_tool_python_function_basic = gcp.ces.Tool("ces_tool_python_function_basic",
        location="us",
        app=my_app.name,
        tool_id="ces_tool_basic4",
        execution_type="SYNCHRONOUS",
        python_function={
            "name": "example_function",
            "python_code": "def example_function() -> int: return 0",
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		my_app, err := ces.NewApp(ctx, "my-app", &ces.AppArgs{
    			Location:    pulumi.String("us"),
    			DisplayName: pulumi.String("my-app"),
    			AppId:       pulumi.String("app-id"),
    			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
    				TimeZone: pulumi.String("America/Los_Angeles"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ces.NewTool(ctx, "ces_tool_python_function_basic", &ces.ToolArgs{
    			Location:      pulumi.String("us"),
    			App:           my_app.Name,
    			ToolId:        pulumi.String("ces_tool_basic4"),
    			ExecutionType: pulumi.String("SYNCHRONOUS"),
    			PythonFunction: &ces.ToolPythonFunctionArgs{
    				Name:       pulumi.String("example_function"),
    				PythonCode: pulumi.String("def example_function() -> int: return 0"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var my_app = new Gcp.Ces.App("my-app", new()
        {
            Location = "us",
            DisplayName = "my-app",
            AppId = "app-id",
            TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
            {
                TimeZone = "America/Los_Angeles",
            },
        });
    
        var cesToolPythonFunctionBasic = new Gcp.Ces.Tool("ces_tool_python_function_basic", new()
        {
            Location = "us",
            App = my_app.Name,
            ToolId = "ces_tool_basic4",
            ExecutionType = "SYNCHRONOUS",
            PythonFunction = new Gcp.Ces.Inputs.ToolPythonFunctionArgs
            {
                Name = "example_function",
                PythonCode = "def example_function() -> int: return 0",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.ces.App;
    import com.pulumi.gcp.ces.AppArgs;
    import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
    import com.pulumi.gcp.ces.Tool;
    import com.pulumi.gcp.ces.ToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolPythonFunctionArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var my_app = new App("my-app", AppArgs.builder()
                .location("us")
                .displayName("my-app")
                .appId("app-id")
                .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                    .timeZone("America/Los_Angeles")
                    .build())
                .build());
    
            var cesToolPythonFunctionBasic = new Tool("cesToolPythonFunctionBasic", ToolArgs.builder()
                .location("us")
                .app(my_app.name())
                .toolId("ces_tool_basic4")
                .executionType("SYNCHRONOUS")
                .pythonFunction(ToolPythonFunctionArgs.builder()
                    .name("example_function")
                    .pythonCode("def example_function() -> int: return 0")
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-app:
        type: gcp:ces:App
        properties:
          location: us
          displayName: my-app
          appId: app-id
          timeZoneSettings:
            timeZone: America/Los_Angeles
      cesToolPythonFunctionBasic:
        type: gcp:ces:Tool
        name: ces_tool_python_function_basic
        properties:
          location: us
          app: ${["my-app"].name}
          toolId: ces_tool_basic4
          executionType: SYNCHRONOUS
          pythonFunction:
            name: example_function
            pythonCode: 'def example_function() -> int: return 0'
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_ces_app" "my-app" {
      location     = "us"
      display_name = "my-app"
      app_id       = "app-id"
      time_zone_settings = {
        time_zone = "America/Los_Angeles"
      }
    }
    resource "gcp_ces_tool" "ces_tool_python_function_basic" {
      location       = "us"
      app            = gcp_ces_app.my-app.name
      tool_id        = "ces_tool_basic4"
      execution_type = "SYNCHRONOUS"
      python_function = {
        name        = "example_function"
        python_code = "def example_function() -> int: return 0"
      }
    }
    

    Ces Tool Agent Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const my_app = new gcp.ces.App("my-app", {
        location: "us",
        displayName: "my-app",
        appId: "app-id",
        timeZoneSettings: {
            timeZone: "America/Los_Angeles",
        },
    });
    const targetAgent = new gcp.ces.Agent("target_agent", {
        agentId: "target-agent",
        location: "us",
        app: my_app.appId,
        displayName: "Target Agent",
        instruction: "Target agent instruction",
        llmAgent: {},
    });
    const cesToolAgentBasic = new gcp.ces.Tool("ces_tool_agent_basic", {
        location: "us",
        app: my_app.name,
        toolId: "ces_tool_basic5",
        executionType: "SYNCHRONOUS",
        agentTool: {
            name: "ces_tool_agent_basic",
            description: "example-description",
            agent: pulumi.all([my_app.project, my_app.appId, targetAgent.agentId]).apply(([project, appId, agentId]) => `projects/${project}/locations/us/apps/${appId}/agents/${agentId}`),
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    my_app = gcp.ces.App("my-app",
        location="us",
        display_name="my-app",
        app_id="app-id",
        time_zone_settings={
            "time_zone": "America/Los_Angeles",
        })
    target_agent = gcp.ces.Agent("target_agent",
        agent_id="target-agent",
        location="us",
        app=my_app.app_id,
        display_name="Target Agent",
        instruction="Target agent instruction",
        llm_agent={})
    ces_tool_agent_basic = gcp.ces.Tool("ces_tool_agent_basic",
        location="us",
        app=my_app.name,
        tool_id="ces_tool_basic5",
        execution_type="SYNCHRONOUS",
        agent_tool={
            "name": "ces_tool_agent_basic",
            "description": "example-description",
            "agent": pulumi.Output.all(
                project=my_app.project,
                app_id=my_app.app_id,
                agent_id=target_agent.agent_id
    ).apply(lambda resolved_outputs: f"projects/{resolved_outputs['project']}/locations/us/apps/{resolved_outputs['app_id']}/agents/{resolved_outputs['agent_id']}")
    ,
        })
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		my_app, err := ces.NewApp(ctx, "my-app", &ces.AppArgs{
    			Location:    pulumi.String("us"),
    			DisplayName: pulumi.String("my-app"),
    			AppId:       pulumi.String("app-id"),
    			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
    				TimeZone: pulumi.String("America/Los_Angeles"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		targetAgent, err := ces.NewAgent(ctx, "target_agent", &ces.AgentArgs{
    			AgentId:     pulumi.String("target-agent"),
    			Location:    pulumi.String("us"),
    			App:         my_app.AppId,
    			DisplayName: pulumi.String("Target Agent"),
    			Instruction: pulumi.String("Target agent instruction"),
    			LlmAgent:    &ces.AgentLlmAgentArgs{},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ces.NewTool(ctx, "ces_tool_agent_basic", &ces.ToolArgs{
    			Location:      pulumi.String("us"),
    			App:           my_app.Name,
    			ToolId:        pulumi.String("ces_tool_basic5"),
    			ExecutionType: pulumi.String("SYNCHRONOUS"),
    			AgentTool: &ces.ToolAgentToolArgs{
    				Name:        pulumi.String("ces_tool_agent_basic"),
    				Description: pulumi.String("example-description"),
    				Agent: pulumi.All(my_app.Project, my_app.AppId, targetAgent.AgentId).ApplyT(func(_args []interface{}) (string, error) {
    					project := _args[0].(string)
    					appId := _args[1].(string)
    					agentId := _args[2].(*string)
    					return fmt.Sprintf("projects/%v/locations/us/apps/%v/agents/%v", project, appId, agentId), nil
    				}).(pulumi.StringOutput),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var my_app = new Gcp.Ces.App("my-app", new()
        {
            Location = "us",
            DisplayName = "my-app",
            AppId = "app-id",
            TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
            {
                TimeZone = "America/Los_Angeles",
            },
        });
    
        var targetAgent = new Gcp.Ces.Agent("target_agent", new()
        {
            AgentId = "target-agent",
            Location = "us",
            App = my_app.AppId,
            DisplayName = "Target Agent",
            Instruction = "Target agent instruction",
            LlmAgent = null,
        });
    
        var cesToolAgentBasic = new Gcp.Ces.Tool("ces_tool_agent_basic", new()
        {
            Location = "us",
            App = my_app.Name,
            ToolId = "ces_tool_basic5",
            ExecutionType = "SYNCHRONOUS",
            AgentTool = new Gcp.Ces.Inputs.ToolAgentToolArgs
            {
                Name = "ces_tool_agent_basic",
                Description = "example-description",
                Agent = Output.Tuple(my_app.Project, my_app.AppId, targetAgent.AgentId).Apply(values =>
                {
                    var project = values.Item1;
                    var appId = values.Item2;
                    var agentId = values.Item3;
                    return $"projects/{project}/locations/us/apps/{appId}/agents/{agentId}";
                }),
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.ces.App;
    import com.pulumi.gcp.ces.AppArgs;
    import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
    import com.pulumi.gcp.ces.Agent;
    import com.pulumi.gcp.ces.AgentArgs;
    import com.pulumi.gcp.ces.inputs.AgentLlmAgentArgs;
    import com.pulumi.gcp.ces.Tool;
    import com.pulumi.gcp.ces.ToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolAgentToolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var my_app = new App("my-app", AppArgs.builder()
                .location("us")
                .displayName("my-app")
                .appId("app-id")
                .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                    .timeZone("America/Los_Angeles")
                    .build())
                .build());
    
            var targetAgent = new Agent("targetAgent", AgentArgs.builder()
                .agentId("target-agent")
                .location("us")
                .app(my_app.appId())
                .displayName("Target Agent")
                .instruction("Target agent instruction")
                .llmAgent(AgentLlmAgentArgs.builder()
                    .build())
                .build());
    
            var cesToolAgentBasic = new Tool("cesToolAgentBasic", ToolArgs.builder()
                .location("us")
                .app(my_app.name())
                .toolId("ces_tool_basic5")
                .executionType("SYNCHRONOUS")
                .agentTool(ToolAgentToolArgs.builder()
                    .name("ces_tool_agent_basic")
                    .description("example-description")
                    .agent(Output.tuple(my_app.project(), my_app.appId(), targetAgent.agentId()).applyValue(values -> {
                        var project = values.t1;
                        var appId = values.t2;
                        var agentId = values.t3;
                        return String.format("projects/%s/locations/us/apps/%s/agents/%s", project,appId,agentId);
                    }))
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-app:
        type: gcp:ces:App
        properties:
          location: us
          displayName: my-app
          appId: app-id
          timeZoneSettings:
            timeZone: America/Los_Angeles
      targetAgent:
        type: gcp:ces:Agent
        name: target_agent
        properties:
          agentId: target-agent
          location: us
          app: ${["my-app"].appId}
          displayName: Target Agent
          instruction: Target agent instruction
          llmAgent: {}
      cesToolAgentBasic:
        type: gcp:ces:Tool
        name: ces_tool_agent_basic
        properties:
          location: us
          app: ${["my-app"].name}
          toolId: ces_tool_basic5
          executionType: SYNCHRONOUS
          agentTool:
            name: ces_tool_agent_basic
            description: example-description
            agent: projects/${["my-app"].project}/locations/us/apps/${["my-app"].appId}/agents/${targetAgent.agentId}
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_ces_app" "my-app" {
      location     = "us"
      display_name = "my-app"
      app_id       = "app-id"
      time_zone_settings = {
        time_zone = "America/Los_Angeles"
      }
    }
    resource "gcp_ces_agent" "target_agent" {
      agent_id     = "target-agent"
      location     = "us"
      app          = gcp_ces_app.my-app.app_id
      display_name = "Target Agent"
      instruction  = "Target agent instruction"
      llm_agent    = {}
    }
    resource "gcp_ces_tool" "ces_tool_agent_basic" {
      location       = "us"
      app            = gcp_ces_app.my-app.name
      tool_id        = "ces_tool_basic5"
      execution_type = "SYNCHRONOUS"
      agent_tool = {
        name        = "ces_tool_agent_basic"
        description = "example-description"
        agent       ="projects/${gcp_ces_app.my-app.project}/locations/us/apps/${gcp_ces_app.my-app.app_id}/agents/${gcp_ces_agent.target_agent.agent_id}"
      }
    }
    

    Ces Tool File Search Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const my_app = new gcp.ces.App("my-app", {
        location: "us",
        displayName: "my-app",
        appId: "app-id",
        timeZoneSettings: {
            timeZone: "America/Los_Angeles",
        },
    });
    const cesToolFileSearchBasic = new gcp.ces.Tool("ces_tool_file_search_basic", {
        location: "us",
        app: my_app.name,
        toolId: "ces_tool_basic6",
        executionType: "SYNCHRONOUS",
        fileSearchTool: {
            name: "ces_tool_file_search_basic",
            description: "example-description",
            corpusType: "FULLY_MANAGED",
            fileCorpus: pulumi.interpolate`projects/${my_app.project}/locations/us/ragCorpora/tf-test-mock-corpus`,
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    my_app = gcp.ces.App("my-app",
        location="us",
        display_name="my-app",
        app_id="app-id",
        time_zone_settings={
            "time_zone": "America/Los_Angeles",
        })
    ces_tool_file_search_basic = gcp.ces.Tool("ces_tool_file_search_basic",
        location="us",
        app=my_app.name,
        tool_id="ces_tool_basic6",
        execution_type="SYNCHRONOUS",
        file_search_tool={
            "name": "ces_tool_file_search_basic",
            "description": "example-description",
            "corpus_type": "FULLY_MANAGED",
            "file_corpus": my_app.project.apply(lambda project: f"projects/{project}/locations/us/ragCorpora/tf-test-mock-corpus"),
        })
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		my_app, err := ces.NewApp(ctx, "my-app", &ces.AppArgs{
    			Location:    pulumi.String("us"),
    			DisplayName: pulumi.String("my-app"),
    			AppId:       pulumi.String("app-id"),
    			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
    				TimeZone: pulumi.String("America/Los_Angeles"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ces.NewTool(ctx, "ces_tool_file_search_basic", &ces.ToolArgs{
    			Location:      pulumi.String("us"),
    			App:           my_app.Name,
    			ToolId:        pulumi.String("ces_tool_basic6"),
    			ExecutionType: pulumi.String("SYNCHRONOUS"),
    			FileSearchTool: &ces.ToolFileSearchToolArgs{
    				Name:        pulumi.String("ces_tool_file_search_basic"),
    				Description: pulumi.String("example-description"),
    				CorpusType:  pulumi.String("FULLY_MANAGED"),
    				FileCorpus: my_app.Project.ApplyT(func(project string) (string, error) {
    					return fmt.Sprintf("projects/%v/locations/us/ragCorpora/tf-test-mock-corpus", project), nil
    				}).(pulumi.StringOutput),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var my_app = new Gcp.Ces.App("my-app", new()
        {
            Location = "us",
            DisplayName = "my-app",
            AppId = "app-id",
            TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
            {
                TimeZone = "America/Los_Angeles",
            },
        });
    
        var cesToolFileSearchBasic = new Gcp.Ces.Tool("ces_tool_file_search_basic", new()
        {
            Location = "us",
            App = my_app.Name,
            ToolId = "ces_tool_basic6",
            ExecutionType = "SYNCHRONOUS",
            FileSearchTool = new Gcp.Ces.Inputs.ToolFileSearchToolArgs
            {
                Name = "ces_tool_file_search_basic",
                Description = "example-description",
                CorpusType = "FULLY_MANAGED",
                FileCorpus = my_app.Project.Apply(project => $"projects/{project}/locations/us/ragCorpora/tf-test-mock-corpus"),
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.ces.App;
    import com.pulumi.gcp.ces.AppArgs;
    import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
    import com.pulumi.gcp.ces.Tool;
    import com.pulumi.gcp.ces.ToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolFileSearchToolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var my_app = new App("my-app", AppArgs.builder()
                .location("us")
                .displayName("my-app")
                .appId("app-id")
                .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                    .timeZone("America/Los_Angeles")
                    .build())
                .build());
    
            var cesToolFileSearchBasic = new Tool("cesToolFileSearchBasic", ToolArgs.builder()
                .location("us")
                .app(my_app.name())
                .toolId("ces_tool_basic6")
                .executionType("SYNCHRONOUS")
                .fileSearchTool(ToolFileSearchToolArgs.builder()
                    .name("ces_tool_file_search_basic")
                    .description("example-description")
                    .corpusType("FULLY_MANAGED")
                    .fileCorpus(my_app.project().applyValue(_project -> String.format("projects/%s/locations/us/ragCorpora/tf-test-mock-corpus", _project)))
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-app:
        type: gcp:ces:App
        properties:
          location: us
          displayName: my-app
          appId: app-id
          timeZoneSettings:
            timeZone: America/Los_Angeles
      cesToolFileSearchBasic:
        type: gcp:ces:Tool
        name: ces_tool_file_search_basic
        properties:
          location: us
          app: ${["my-app"].name}
          toolId: ces_tool_basic6
          executionType: SYNCHRONOUS
          fileSearchTool:
            name: ces_tool_file_search_basic
            description: example-description
            corpusType: FULLY_MANAGED
            fileCorpus: projects/${["my-app"].project}/locations/us/ragCorpora/tf-test-mock-corpus
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_ces_app" "my-app" {
      location     = "us"
      display_name = "my-app"
      app_id       = "app-id"
      time_zone_settings = {
        time_zone = "America/Los_Angeles"
      }
    }
    resource "gcp_ces_tool" "ces_tool_file_search_basic" {
      location       = "us"
      app            = gcp_ces_app.my-app.name
      tool_id        = "ces_tool_basic6"
      execution_type = "SYNCHRONOUS"
      file_search_tool = {
        name        = "ces_tool_file_search_basic"
        description = "example-description"
        corpus_type = "FULLY_MANAGED"
        file_corpus ="projects/${gcp_ces_app.my-app.project}/locations/us/ragCorpora/tf-test-mock-corpus"
      }
    }
    

    Ces Tool Widget Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const my_app = new gcp.ces.App("my-app", {
        location: "us",
        displayName: "my-app",
        appId: "app-id",
        timeZoneSettings: {
            timeZone: "America/Los_Angeles",
        },
    });
    const cesToolWidgetBasic = new gcp.ces.Tool("ces_tool_widget_basic", {
        location: "us",
        app: my_app.name,
        toolId: "ces_tool_basic7",
        executionType: "SYNCHRONOUS",
        widgetTool: {
            name: "ces_tool_widget_basic",
            description: "example-description",
            widgetType: "PRODUCT_CAROUSEL",
            uiConfig: JSON.stringify({
                displaySettings: {
                    showHeader: true,
                },
            }),
            dataMapping: {
                mode: "FIELD_MAPPING",
                fieldMappings: {
                    key1: "value1",
                    key2: "value2",
                },
            },
            textResponseConfig: {
                type: "STATIC",
                staticText: "example-static-text",
            },
            parameters: {
                type: "OBJECT",
                properties: JSON.stringify({
                    param1: {
                        type: "STRING",
                    },
                }),
            },
        },
    });
    
    import pulumi
    import json
    import pulumi_gcp as gcp
    
    my_app = gcp.ces.App("my-app",
        location="us",
        display_name="my-app",
        app_id="app-id",
        time_zone_settings={
            "time_zone": "America/Los_Angeles",
        })
    ces_tool_widget_basic = gcp.ces.Tool("ces_tool_widget_basic",
        location="us",
        app=my_app.name,
        tool_id="ces_tool_basic7",
        execution_type="SYNCHRONOUS",
        widget_tool={
            "name": "ces_tool_widget_basic",
            "description": "example-description",
            "widget_type": "PRODUCT_CAROUSEL",
            "ui_config": json.dumps({
                "displaySettings": {
                    "showHeader": True,
                },
            }),
            "data_mapping": {
                "mode": "FIELD_MAPPING",
                "field_mappings": {
                    "key1": "value1",
                    "key2": "value2",
                },
            },
            "text_response_config": {
                "type": "STATIC",
                "static_text": "example-static-text",
            },
            "parameters": {
                "type": "OBJECT",
                "properties": json.dumps({
                    "param1": {
                        "type": "STRING",
                    },
                }),
            },
        })
    
    package main
    
    import (
    	"encoding/json"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		my_app, err := ces.NewApp(ctx, "my-app", &ces.AppArgs{
    			Location:    pulumi.String("us"),
    			DisplayName: pulumi.String("my-app"),
    			AppId:       pulumi.String("app-id"),
    			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
    				TimeZone: pulumi.String("America/Los_Angeles"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON0, err := json.Marshal(map[string]interface{}{
    			"displaySettings": map[string]interface{}{
    				"showHeader": true,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json0 := string(tmpJSON0)
    		tmpJSON1, err := json.Marshal(map[string]interface{}{
    			"param1": map[string]interface{}{
    				"type": "STRING",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json1 := string(tmpJSON1)
    		_, err = ces.NewTool(ctx, "ces_tool_widget_basic", &ces.ToolArgs{
    			Location:      pulumi.String("us"),
    			App:           my_app.Name,
    			ToolId:        pulumi.String("ces_tool_basic7"),
    			ExecutionType: pulumi.String("SYNCHRONOUS"),
    			WidgetTool: &ces.ToolWidgetToolArgs{
    				Name:        pulumi.String("ces_tool_widget_basic"),
    				Description: pulumi.String("example-description"),
    				WidgetType:  pulumi.String("PRODUCT_CAROUSEL"),
    				UiConfig:    pulumi.String(json0),
    				DataMapping: &ces.ToolWidgetToolDataMappingArgs{
    					Mode: pulumi.String("FIELD_MAPPING"),
    					FieldMappings: pulumi.StringMap{
    						"key1": pulumi.String("value1"),
    						"key2": pulumi.String("value2"),
    					},
    				},
    				TextResponseConfig: &ces.ToolWidgetToolTextResponseConfigArgs{
    					Type:       pulumi.String("STATIC"),
    					StaticText: pulumi.String("example-static-text"),
    				},
    				Parameters: &ces.ToolWidgetToolParametersArgs{
    					Type:       pulumi.String("OBJECT"),
    					Properties: pulumi.String(json1),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.Json;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var my_app = new Gcp.Ces.App("my-app", new()
        {
            Location = "us",
            DisplayName = "my-app",
            AppId = "app-id",
            TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
            {
                TimeZone = "America/Los_Angeles",
            },
        });
    
        var cesToolWidgetBasic = new Gcp.Ces.Tool("ces_tool_widget_basic", new()
        {
            Location = "us",
            App = my_app.Name,
            ToolId = "ces_tool_basic7",
            ExecutionType = "SYNCHRONOUS",
            WidgetTool = new Gcp.Ces.Inputs.ToolWidgetToolArgs
            {
                Name = "ces_tool_widget_basic",
                Description = "example-description",
                WidgetType = "PRODUCT_CAROUSEL",
                UiConfig = JsonSerializer.Serialize(new Dictionary<string, object?>
                {
                    ["displaySettings"] = new Dictionary<string, object?>
                    {
                        ["showHeader"] = true,
                    },
                }),
                DataMapping = new Gcp.Ces.Inputs.ToolWidgetToolDataMappingArgs
                {
                    Mode = "FIELD_MAPPING",
                    FieldMappings = 
                    {
                        { "key1", "value1" },
                        { "key2", "value2" },
                    },
                },
                TextResponseConfig = new Gcp.Ces.Inputs.ToolWidgetToolTextResponseConfigArgs
                {
                    Type = "STATIC",
                    StaticText = "example-static-text",
                },
                Parameters = new Gcp.Ces.Inputs.ToolWidgetToolParametersArgs
                {
                    Type = "OBJECT",
                    Properties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["param1"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                        },
                    }),
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.ces.App;
    import com.pulumi.gcp.ces.AppArgs;
    import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
    import com.pulumi.gcp.ces.Tool;
    import com.pulumi.gcp.ces.ToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolWidgetToolArgs;
    import com.pulumi.gcp.ces.inputs.ToolWidgetToolDataMappingArgs;
    import com.pulumi.gcp.ces.inputs.ToolWidgetToolTextResponseConfigArgs;
    import com.pulumi.gcp.ces.inputs.ToolWidgetToolParametersArgs;
    import static com.pulumi.codegen.internal.Serialization.*;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var my_app = new App("my-app", AppArgs.builder()
                .location("us")
                .displayName("my-app")
                .appId("app-id")
                .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                    .timeZone("America/Los_Angeles")
                    .build())
                .build());
    
            var cesToolWidgetBasic = new Tool("cesToolWidgetBasic", ToolArgs.builder()
                .location("us")
                .app(my_app.name())
                .toolId("ces_tool_basic7")
                .executionType("SYNCHRONOUS")
                .widgetTool(ToolWidgetToolArgs.builder()
                    .name("ces_tool_widget_basic")
                    .description("example-description")
                    .widgetType("PRODUCT_CAROUSEL")
                    .uiConfig(serializeJson(
                        jsonObject(
                            jsonProperty("displaySettings", jsonObject(
                                jsonProperty("showHeader", true)
                            ))
                        )))
                    .dataMapping(ToolWidgetToolDataMappingArgs.builder()
                        .mode("FIELD_MAPPING")
                        .fieldMappings(Map.ofEntries(
                            Map.entry("key1", "value1"),
                            Map.entry("key2", "value2")
                        ))
                        .build())
                    .textResponseConfig(ToolWidgetToolTextResponseConfigArgs.builder()
                        .type("STATIC")
                        .staticText("example-static-text")
                        .build())
                    .parameters(ToolWidgetToolParametersArgs.builder()
                        .type("OBJECT")
                        .properties(serializeJson(
                            jsonObject(
                                jsonProperty("param1", jsonObject(
                                    jsonProperty("type", "STRING")
                                ))
                            )))
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-app:
        type: gcp:ces:App
        properties:
          location: us
          displayName: my-app
          appId: app-id
          timeZoneSettings:
            timeZone: America/Los_Angeles
      cesToolWidgetBasic:
        type: gcp:ces:Tool
        name: ces_tool_widget_basic
        properties:
          location: us
          app: ${["my-app"].name}
          toolId: ces_tool_basic7
          executionType: SYNCHRONOUS
          widgetTool:
            name: ces_tool_widget_basic
            description: example-description
            widgetType: PRODUCT_CAROUSEL
            uiConfig:
              fn::toJSON:
                displaySettings:
                  showHeader: true
            dataMapping:
              mode: FIELD_MAPPING
              fieldMappings:
                key1: value1
                key2: value2
            textResponseConfig:
              type: STATIC
              staticText: example-static-text
            parameters:
              type: OBJECT
              properties:
                fn::toJSON:
                  param1:
                    type: STRING
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_ces_app" "my-app" {
      location     = "us"
      display_name = "my-app"
      app_id       = "app-id"
      time_zone_settings = {
        time_zone = "America/Los_Angeles"
      }
    }
    resource "gcp_ces_tool" "ces_tool_widget_basic" {
      location       = "us"
      app            = gcp_ces_app.my-app.name
      tool_id        = "ces_tool_basic7"
      execution_type = "SYNCHRONOUS"
      widget_tool = {
        name        = "ces_tool_widget_basic"
        description = "example-description"
        widget_type = "PRODUCT_CAROUSEL"
        ui_config = jsonencode({
          "displaySettings" = {
            "showHeader" = true
          }
        })
        data_mapping = {
          mode = "FIELD_MAPPING"
          field_mappings = {
            "key1" = "value1"
            "key2" = "value2"
          }
        }
        text_response_config = {
          type        = "STATIC"
          static_text = "example-static-text"
        }
        parameters = {
          type = "OBJECT"
          properties = jsonencode({
            "param1" = {
              "type" = "STRING"
            }
          })
        }
      }
    }
    

    Create Tool Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Tool(name: string, args: ToolArgs, opts?: CustomResourceOptions);
    @overload
    def Tool(resource_name: str,
             args: ToolArgs,
             opts: Optional[ResourceOptions] = None)
    
    @overload
    def Tool(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             location: Optional[str] = None,
             app: Optional[str] = None,
             tool_id: Optional[str] = None,
             file_search_tool: Optional[ToolFileSearchToolArgs] = None,
             deletion_policy: Optional[str] = None,
             execution_type: Optional[str] = None,
             agent_tool: Optional[ToolAgentToolArgs] = None,
             google_search_tool: Optional[ToolGoogleSearchToolArgs] = None,
             data_store_tool: Optional[ToolDataStoreToolArgs] = None,
             project: Optional[str] = None,
             python_function: Optional[ToolPythonFunctionArgs] = None,
             timeout: Optional[str] = None,
             tool_fake_config: Optional[ToolToolFakeConfigArgs] = None,
             client_function: Optional[ToolClientFunctionArgs] = None,
             widget_tool: Optional[ToolWidgetToolArgs] = None)
    func NewTool(ctx *Context, name string, args ToolArgs, opts ...ResourceOption) (*Tool, error)
    public Tool(string name, ToolArgs args, CustomResourceOptions? opts = null)
    public Tool(String name, ToolArgs args)
    public Tool(String name, ToolArgs args, CustomResourceOptions options)
    
    type: gcp:ces:Tool
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "gcp_ces_tool" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ToolArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ToolArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ToolArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ToolArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ToolArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var toolResource = new Gcp.Ces.Tool("toolResource", new()
    {
        Location = "string",
        App = "string",
        ToolId = "string",
        FileSearchTool = new Gcp.Ces.Inputs.ToolFileSearchToolArgs
        {
            Name = "string",
            CorpusType = "string",
            Description = "string",
            FileCorpus = "string",
        },
        DeletionPolicy = "string",
        ExecutionType = "string",
        AgentTool = new Gcp.Ces.Inputs.ToolAgentToolArgs
        {
            Name = "string",
            Agent = "string",
            Description = "string",
        },
        GoogleSearchTool = new Gcp.Ces.Inputs.ToolGoogleSearchToolArgs
        {
            Name = "string",
            ContextUrls = new[]
            {
                "string",
            },
            Description = "string",
            ExcludeDomains = new[]
            {
                "string",
            },
            PreferredDomains = new[]
            {
                "string",
            },
            PromptConfig = new Gcp.Ces.Inputs.ToolGoogleSearchToolPromptConfigArgs
            {
                TextPrompt = "string",
                VoicePrompt = "string",
            },
        },
        DataStoreTool = new Gcp.Ces.Inputs.ToolDataStoreToolArgs
        {
            Name = "string",
            BoostSpecs = new[]
            {
                new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecArgs
                {
                    DataStores = new[]
                    {
                        "string",
                    },
                    Specs = new[]
                    {
                        new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecArgs
                        {
                            ConditionBoostSpecs = new[]
                            {
                                new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs
                                {
                                    Condition = "string",
                                    Boost = 0,
                                    BoostControlSpec = new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs
                                    {
                                        AttributeType = "string",
                                        ControlPoints = new[]
                                        {
                                            new Gcp.Ces.Inputs.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs
                                            {
                                                AttributeValue = "string",
                                                BoostAmount = 0,
                                            },
                                        },
                                        FieldName = "string",
                                        InterpolationType = "string",
                                    },
                                },
                            },
                        },
                    },
                },
            },
            DataStoreSource = new Gcp.Ces.Inputs.ToolDataStoreToolDataStoreSourceArgs
            {
                DataStore = new Gcp.Ces.Inputs.ToolDataStoreToolDataStoreSourceDataStoreArgs
                {
                    Name = "string",
                    ConnectorConfigs = new[]
                    {
                        new Gcp.Ces.Inputs.ToolDataStoreToolDataStoreSourceDataStoreConnectorConfigArgs
                        {
                            Collection = "string",
                            CollectionDisplayName = "string",
                            DataSource = "string",
                        },
                    },
                    CreateTime = "string",
                    DisplayName = "string",
                    DocumentProcessingMode = "string",
                    Type = "string",
                },
                Filter = "string",
            },
            Description = "string",
            EngineSource = new Gcp.Ces.Inputs.ToolDataStoreToolEngineSourceArgs
            {
                Engine = "string",
                DataStoreSources = new[]
                {
                    new Gcp.Ces.Inputs.ToolDataStoreToolEngineSourceDataStoreSourceArgs
                    {
                        DataStore = new Gcp.Ces.Inputs.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs
                        {
                            Name = "string",
                            ConnectorConfigs = new[]
                            {
                                new Gcp.Ces.Inputs.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfigArgs
                                {
                                    Collection = "string",
                                    CollectionDisplayName = "string",
                                    DataSource = "string",
                                },
                            },
                            CreateTime = "string",
                            DisplayName = "string",
                            DocumentProcessingMode = "string",
                            Type = "string",
                        },
                        Filter = "string",
                    },
                },
                Filter = "string",
            },
            FilterParameterBehavior = "string",
            ModalityConfigs = new[]
            {
                new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigArgs
                {
                    ModalityType = "string",
                    GroundingConfig = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigGroundingConfigArgs
                    {
                        Disabled = false,
                        GroundingLevel = 0,
                    },
                    RewriterConfig = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigRewriterConfigArgs
                    {
                        ModelSettings = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs
                        {
                            Model = "string",
                            Temperature = 0,
                        },
                        Disabled = false,
                        Prompt = "string",
                    },
                    SummarizationConfig = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigSummarizationConfigArgs
                    {
                        Disabled = false,
                        ModelSettings = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs
                        {
                            Model = "string",
                            Temperature = 0,
                        },
                        Prompt = "string",
                    },
                },
            },
        },
        Project = "string",
        PythonFunction = new Gcp.Ces.Inputs.ToolPythonFunctionArgs
        {
            Description = "string",
            Name = "string",
            PythonCode = "string",
        },
        Timeout = "string",
        ToolFakeConfig = new Gcp.Ces.Inputs.ToolToolFakeConfigArgs
        {
            CodeBlock = new Gcp.Ces.Inputs.ToolToolFakeConfigCodeBlockArgs
            {
                PythonCode = "string",
            },
            EnableFakeMode = false,
        },
        ClientFunction = new Gcp.Ces.Inputs.ToolClientFunctionArgs
        {
            Name = "string",
            Description = "string",
            Parameters = new Gcp.Ces.Inputs.ToolClientFunctionParametersArgs
            {
                Type = "string",
                Maximum = 0,
                Nullable = false,
                Defs = "string",
                Description = "string",
                Enums = new[]
                {
                    "string",
                },
                Items = "string",
                MaxItems = 0,
                AdditionalProperties = "string",
                Default = "string",
                MinItems = 0,
                Minimum = 0,
                PrefixItems = "string",
                Properties = "string",
                Ref = "string",
                Requireds = new[]
                {
                    "string",
                },
                Title = "string",
                AnyOf = "string",
                UniqueItems = false,
            },
            Response = new Gcp.Ces.Inputs.ToolClientFunctionResponseArgs
            {
                Type = "string",
                Maximum = 0,
                Nullable = false,
                Defs = "string",
                Description = "string",
                Enums = new[]
                {
                    "string",
                },
                Items = "string",
                MaxItems = 0,
                AdditionalProperties = "string",
                Default = "string",
                MinItems = 0,
                Minimum = 0,
                PrefixItems = "string",
                Properties = "string",
                Ref = "string",
                Requireds = new[]
                {
                    "string",
                },
                Title = "string",
                AnyOf = "string",
                UniqueItems = false,
            },
        },
        WidgetTool = new Gcp.Ces.Inputs.ToolWidgetToolArgs
        {
            Name = "string",
            DataMapping = new Gcp.Ces.Inputs.ToolWidgetToolDataMappingArgs
            {
                FieldMappings = 
                {
                    { "string", "string" },
                },
                Mode = "string",
                PythonFunction = new Gcp.Ces.Inputs.ToolWidgetToolDataMappingPythonFunctionArgs
                {
                    Description = "string",
                    Name = "string",
                    PythonCode = "string",
                },
                SourceToolName = "string",
            },
            Description = "string",
            Parameters = new Gcp.Ces.Inputs.ToolWidgetToolParametersArgs
            {
                Type = "string",
                Maximum = 0,
                Nullable = false,
                Defs = "string",
                Description = "string",
                Enums = new[]
                {
                    "string",
                },
                Items = "string",
                MaxItems = 0,
                AdditionalProperties = "string",
                Default = "string",
                MinItems = 0,
                Minimum = 0,
                PrefixItems = "string",
                Properties = "string",
                Ref = "string",
                Requireds = new[]
                {
                    "string",
                },
                Title = "string",
                AnyOf = "string",
                UniqueItems = false,
            },
            TextResponseConfig = new Gcp.Ces.Inputs.ToolWidgetToolTextResponseConfigArgs
            {
                StaticText = "string",
                TextResponseInstruction = "string",
                Type = "string",
            },
            UiConfig = "string",
            WidgetType = "string",
        },
    });
    
    example, err := ces.NewTool(ctx, "toolResource", &ces.ToolArgs{
    	Location: pulumi.String("string"),
    	App:      pulumi.String("string"),
    	ToolId:   pulumi.String("string"),
    	FileSearchTool: &ces.ToolFileSearchToolArgs{
    		Name:        pulumi.String("string"),
    		CorpusType:  pulumi.String("string"),
    		Description: pulumi.String("string"),
    		FileCorpus:  pulumi.String("string"),
    	},
    	DeletionPolicy: pulumi.String("string"),
    	ExecutionType:  pulumi.String("string"),
    	AgentTool: &ces.ToolAgentToolArgs{
    		Name:        pulumi.String("string"),
    		Agent:       pulumi.String("string"),
    		Description: pulumi.String("string"),
    	},
    	GoogleSearchTool: &ces.ToolGoogleSearchToolArgs{
    		Name: pulumi.String("string"),
    		ContextUrls: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		Description: pulumi.String("string"),
    		ExcludeDomains: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		PreferredDomains: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		PromptConfig: &ces.ToolGoogleSearchToolPromptConfigArgs{
    			TextPrompt:  pulumi.String("string"),
    			VoicePrompt: pulumi.String("string"),
    		},
    	},
    	DataStoreTool: &ces.ToolDataStoreToolArgs{
    		Name: pulumi.String("string"),
    		BoostSpecs: ces.ToolDataStoreToolBoostSpecArray{
    			&ces.ToolDataStoreToolBoostSpecArgs{
    				DataStores: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Specs: ces.ToolDataStoreToolBoostSpecSpecArray{
    					&ces.ToolDataStoreToolBoostSpecSpecArgs{
    						ConditionBoostSpecs: ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecArray{
    							&ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs{
    								Condition: pulumi.String("string"),
    								Boost:     pulumi.Float64(0),
    								BoostControlSpec: &ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs{
    									AttributeType: pulumi.String("string"),
    									ControlPoints: ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArray{
    										&ces.ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs{
    											AttributeValue: pulumi.String("string"),
    											BoostAmount:    pulumi.Float64(0),
    										},
    									},
    									FieldName:         pulumi.String("string"),
    									InterpolationType: pulumi.String("string"),
    								},
    							},
    						},
    					},
    				},
    			},
    		},
    		DataStoreSource: &ces.ToolDataStoreToolDataStoreSourceArgs{
    			DataStore: &ces.ToolDataStoreToolDataStoreSourceDataStoreArgs{
    				Name: pulumi.String("string"),
    				ConnectorConfigs: ces.ToolDataStoreToolDataStoreSourceDataStoreConnectorConfigArray{
    					&ces.ToolDataStoreToolDataStoreSourceDataStoreConnectorConfigArgs{
    						Collection:            pulumi.String("string"),
    						CollectionDisplayName: pulumi.String("string"),
    						DataSource:            pulumi.String("string"),
    					},
    				},
    				CreateTime:             pulumi.String("string"),
    				DisplayName:            pulumi.String("string"),
    				DocumentProcessingMode: pulumi.String("string"),
    				Type:                   pulumi.String("string"),
    			},
    			Filter: pulumi.String("string"),
    		},
    		Description: pulumi.String("string"),
    		EngineSource: &ces.ToolDataStoreToolEngineSourceArgs{
    			Engine: pulumi.String("string"),
    			DataStoreSources: ces.ToolDataStoreToolEngineSourceDataStoreSourceArray{
    				&ces.ToolDataStoreToolEngineSourceDataStoreSourceArgs{
    					DataStore: &ces.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs{
    						Name: pulumi.String("string"),
    						ConnectorConfigs: ces.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfigArray{
    							&ces.ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfigArgs{
    								Collection:            pulumi.String("string"),
    								CollectionDisplayName: pulumi.String("string"),
    								DataSource:            pulumi.String("string"),
    							},
    						},
    						CreateTime:             pulumi.String("string"),
    						DisplayName:            pulumi.String("string"),
    						DocumentProcessingMode: pulumi.String("string"),
    						Type:                   pulumi.String("string"),
    					},
    					Filter: pulumi.String("string"),
    				},
    			},
    			Filter: pulumi.String("string"),
    		},
    		FilterParameterBehavior: pulumi.String("string"),
    		ModalityConfigs: ces.ToolDataStoreToolModalityConfigArray{
    			&ces.ToolDataStoreToolModalityConfigArgs{
    				ModalityType: pulumi.String("string"),
    				GroundingConfig: &ces.ToolDataStoreToolModalityConfigGroundingConfigArgs{
    					Disabled:       pulumi.Bool(false),
    					GroundingLevel: pulumi.Float64(0),
    				},
    				RewriterConfig: &ces.ToolDataStoreToolModalityConfigRewriterConfigArgs{
    					ModelSettings: &ces.ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs{
    						Model:       pulumi.String("string"),
    						Temperature: pulumi.Float64(0),
    					},
    					Disabled: pulumi.Bool(false),
    					Prompt:   pulumi.String("string"),
    				},
    				SummarizationConfig: &ces.ToolDataStoreToolModalityConfigSummarizationConfigArgs{
    					Disabled: pulumi.Bool(false),
    					ModelSettings: &ces.ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs{
    						Model:       pulumi.String("string"),
    						Temperature: pulumi.Float64(0),
    					},
    					Prompt: pulumi.String("string"),
    				},
    			},
    		},
    	},
    	Project: pulumi.String("string"),
    	PythonFunction: &ces.ToolPythonFunctionArgs{
    		Description: pulumi.String("string"),
    		Name:        pulumi.String("string"),
    		PythonCode:  pulumi.String("string"),
    	},
    	Timeout: pulumi.String("string"),
    	ToolFakeConfig: &ces.ToolToolFakeConfigArgs{
    		CodeBlock: &ces.ToolToolFakeConfigCodeBlockArgs{
    			PythonCode: pulumi.String("string"),
    		},
    		EnableFakeMode: pulumi.Bool(false),
    	},
    	ClientFunction: &ces.ToolClientFunctionArgs{
    		Name:        pulumi.String("string"),
    		Description: pulumi.String("string"),
    		Parameters: &ces.ToolClientFunctionParametersArgs{
    			Type:        pulumi.String("string"),
    			Maximum:     pulumi.Float64(0),
    			Nullable:    pulumi.Bool(false),
    			Defs:        pulumi.String("string"),
    			Description: pulumi.String("string"),
    			Enums: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Items:                pulumi.String("string"),
    			MaxItems:             pulumi.Int(0),
    			AdditionalProperties: pulumi.String("string"),
    			Default:              pulumi.String("string"),
    			MinItems:             pulumi.Int(0),
    			Minimum:              pulumi.Float64(0),
    			PrefixItems:          pulumi.String("string"),
    			Properties:           pulumi.String("string"),
    			Ref:                  pulumi.String("string"),
    			Requireds: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Title:       pulumi.String("string"),
    			AnyOf:       pulumi.String("string"),
    			UniqueItems: pulumi.Bool(false),
    		},
    		Response: &ces.ToolClientFunctionResponseArgs{
    			Type:        pulumi.String("string"),
    			Maximum:     pulumi.Float64(0),
    			Nullable:    pulumi.Bool(false),
    			Defs:        pulumi.String("string"),
    			Description: pulumi.String("string"),
    			Enums: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Items:                pulumi.String("string"),
    			MaxItems:             pulumi.Int(0),
    			AdditionalProperties: pulumi.String("string"),
    			Default:              pulumi.String("string"),
    			MinItems:             pulumi.Int(0),
    			Minimum:              pulumi.Float64(0),
    			PrefixItems:          pulumi.String("string"),
    			Properties:           pulumi.String("string"),
    			Ref:                  pulumi.String("string"),
    			Requireds: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Title:       pulumi.String("string"),
    			AnyOf:       pulumi.String("string"),
    			UniqueItems: pulumi.Bool(false),
    		},
    	},
    	WidgetTool: &ces.ToolWidgetToolArgs{
    		Name: pulumi.String("string"),
    		DataMapping: &ces.ToolWidgetToolDataMappingArgs{
    			FieldMappings: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			Mode: pulumi.String("string"),
    			PythonFunction: &ces.ToolWidgetToolDataMappingPythonFunctionArgs{
    				Description: pulumi.String("string"),
    				Name:        pulumi.String("string"),
    				PythonCode:  pulumi.String("string"),
    			},
    			SourceToolName: pulumi.String("string"),
    		},
    		Description: pulumi.String("string"),
    		Parameters: &ces.ToolWidgetToolParametersArgs{
    			Type:        pulumi.String("string"),
    			Maximum:     pulumi.Float64(0),
    			Nullable:    pulumi.Bool(false),
    			Defs:        pulumi.String("string"),
    			Description: pulumi.String("string"),
    			Enums: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Items:                pulumi.String("string"),
    			MaxItems:             pulumi.Int(0),
    			AdditionalProperties: pulumi.String("string"),
    			Default:              pulumi.String("string"),
    			MinItems:             pulumi.Int(0),
    			Minimum:              pulumi.Float64(0),
    			PrefixItems:          pulumi.String("string"),
    			Properties:           pulumi.String("string"),
    			Ref:                  pulumi.String("string"),
    			Requireds: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Title:       pulumi.String("string"),
    			AnyOf:       pulumi.String("string"),
    			UniqueItems: pulumi.Bool(false),
    		},
    		TextResponseConfig: &ces.ToolWidgetToolTextResponseConfigArgs{
    			StaticText:              pulumi.String("string"),
    			TextResponseInstruction: pulumi.String("string"),
    			Type:                    pulumi.String("string"),
    		},
    		UiConfig:   pulumi.String("string"),
    		WidgetType: pulumi.String("string"),
    	},
    })
    
    resource "gcp_ces_tool" "toolResource" {
      lifecycle {
        create_before_destroy = true
      }
      location = "string"
      app      = "string"
      tool_id  = "string"
      file_search_tool = {
        name        = "string"
        corpus_type = "string"
        description = "string"
        file_corpus = "string"
      }
      deletion_policy = "string"
      execution_type  = "string"
      agent_tool = {
        name        = "string"
        agent       = "string"
        description = "string"
      }
      google_search_tool = {
        name              = "string"
        context_urls      = ["string"]
        description       = "string"
        exclude_domains   = ["string"]
        preferred_domains = ["string"]
        prompt_config = {
          text_prompt  = "string"
          voice_prompt = "string"
        }
      }
      data_store_tool = {
        name = "string"
        boost_specs = [{
          data_stores = ["string"]
          specs = [{
            condition_boost_specs = [{
              condition = "string"
              boost     = 0
              boost_control_spec = {
                attribute_type = "string"
                control_points = [{
                  attribute_value = "string"
                  boost_amount    = 0
                }]
                field_name         = "string"
                interpolation_type = "string"
              }
            }]
          }]
        }]
        data_store_source = {
          data_store = {
            name = "string"
            connector_configs = [{
              collection              = "string"
              collection_display_name = "string"
              data_source             = "string"
            }]
            create_time              = "string"
            display_name             = "string"
            document_processing_mode = "string"
            type                     = "string"
          }
          filter = "string"
        }
        description = "string"
        engine_source = {
          engine = "string"
          data_store_sources = [{
            data_store = {
              name = "string"
              connector_configs = [{
                collection              = "string"
                collection_display_name = "string"
                data_source             = "string"
              }]
              create_time              = "string"
              display_name             = "string"
              document_processing_mode = "string"
              type                     = "string"
            }
            filter = "string"
          }]
          filter = "string"
        }
        filter_parameter_behavior = "string"
        modality_configs = [{
          modality_type = "string"
          grounding_config = {
            disabled        = false
            grounding_level = 0
          }
          rewriter_config = {
            model_settings = {
              model       = "string"
              temperature = 0
            }
            disabled = false
            prompt   = "string"
          }
          summarization_config = {
            disabled = false
            model_settings = {
              model       = "string"
              temperature = 0
            }
            prompt = "string"
          }
        }]
      }
      project = "string"
      python_function = {
        description = "string"
        name        = "string"
        python_code = "string"
      }
      timeout = "string"
      tool_fake_config = {
        code_block = {
          python_code = "string"
        }
        enable_fake_mode = false
      }
      client_function = {
        name        = "string"
        description = "string"
        parameters = {
          type                  = "string"
          maximum               = 0
          nullable              = false
          defs                  = "string"
          description           = "string"
          enums                 = ["string"]
          items                 = "string"
          max_items             = 0
          additional_properties = "string"
          default               = "string"
          min_items             = 0
          minimum               = 0
          prefix_items          = "string"
          properties            = "string"
          ref                   = "string"
          requireds             = ["string"]
          title                 = "string"
          any_of                = "string"
          unique_items          = false
        }
        response = {
          type                  = "string"
          maximum               = 0
          nullable              = false
          defs                  = "string"
          description           = "string"
          enums                 = ["string"]
          items                 = "string"
          max_items             = 0
          additional_properties = "string"
          default               = "string"
          min_items             = 0
          minimum               = 0
          prefix_items          = "string"
          properties            = "string"
          ref                   = "string"
          requireds             = ["string"]
          title                 = "string"
          any_of                = "string"
          unique_items          = false
        }
      }
      widget_tool = {
        name = "string"
        data_mapping = {
          field_mappings = {
            "string" = "string"
          }
          mode = "string"
          python_function = {
            description = "string"
            name        = "string"
            python_code = "string"
          }
          source_tool_name = "string"
        }
        description = "string"
        parameters = {
          type                  = "string"
          maximum               = 0
          nullable              = false
          defs                  = "string"
          description           = "string"
          enums                 = ["string"]
          items                 = "string"
          max_items             = 0
          additional_properties = "string"
          default               = "string"
          min_items             = 0
          minimum               = 0
          prefix_items          = "string"
          properties            = "string"
          ref                   = "string"
          requireds             = ["string"]
          title                 = "string"
          any_of                = "string"
          unique_items          = false
        }
        text_response_config = {
          static_text               = "string"
          text_response_instruction = "string"
          type                      = "string"
        }
        ui_config   = "string"
        widget_type = "string"
      }
    }
    
    var toolResource = new Tool("toolResource", ToolArgs.builder()
        .location("string")
        .app("string")
        .toolId("string")
        .fileSearchTool(ToolFileSearchToolArgs.builder()
            .name("string")
            .corpusType("string")
            .description("string")
            .fileCorpus("string")
            .build())
        .deletionPolicy("string")
        .executionType("string")
        .agentTool(ToolAgentToolArgs.builder()
            .name("string")
            .agent("string")
            .description("string")
            .build())
        .googleSearchTool(ToolGoogleSearchToolArgs.builder()
            .name("string")
            .contextUrls("string")
            .description("string")
            .excludeDomains("string")
            .preferredDomains("string")
            .promptConfig(ToolGoogleSearchToolPromptConfigArgs.builder()
                .textPrompt("string")
                .voicePrompt("string")
                .build())
            .build())
        .dataStoreTool(ToolDataStoreToolArgs.builder()
            .name("string")
            .boostSpecs(ToolDataStoreToolBoostSpecArgs.builder()
                .dataStores("string")
                .specs(ToolDataStoreToolBoostSpecSpecArgs.builder()
                    .conditionBoostSpecs(ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs.builder()
                        .condition("string")
                        .boost(0.0)
                        .boostControlSpec(ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs.builder()
                            .attributeType("string")
                            .controlPoints(ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs.builder()
                                .attributeValue("string")
                                .boostAmount(0.0)
                                .build())
                            .fieldName("string")
                            .interpolationType("string")
                            .build())
                        .build())
                    .build())
                .build())
            .dataStoreSource(ToolDataStoreToolDataStoreSourceArgs.builder()
                .dataStore(ToolDataStoreToolDataStoreSourceDataStoreArgs.builder()
                    .name("string")
                    .connectorConfigs(ToolDataStoreToolDataStoreSourceDataStoreConnectorConfigArgs.builder()
                        .collection("string")
                        .collectionDisplayName("string")
                        .dataSource("string")
                        .build())
                    .createTime("string")
                    .displayName("string")
                    .documentProcessingMode("string")
                    .type("string")
                    .build())
                .filter("string")
                .build())
            .description("string")
            .engineSource(ToolDataStoreToolEngineSourceArgs.builder()
                .engine("string")
                .dataStoreSources(ToolDataStoreToolEngineSourceDataStoreSourceArgs.builder()
                    .dataStore(ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs.builder()
                        .name("string")
                        .connectorConfigs(ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfigArgs.builder()
                            .collection("string")
                            .collectionDisplayName("string")
                            .dataSource("string")
                            .build())
                        .createTime("string")
                        .displayName("string")
                        .documentProcessingMode("string")
                        .type("string")
                        .build())
                    .filter("string")
                    .build())
                .filter("string")
                .build())
            .filterParameterBehavior("string")
            .modalityConfigs(ToolDataStoreToolModalityConfigArgs.builder()
                .modalityType("string")
                .groundingConfig(ToolDataStoreToolModalityConfigGroundingConfigArgs.builder()
                    .disabled(false)
                    .groundingLevel(0.0)
                    .build())
                .rewriterConfig(ToolDataStoreToolModalityConfigRewriterConfigArgs.builder()
                    .modelSettings(ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs.builder()
                        .model("string")
                        .temperature(0.0)
                        .build())
                    .disabled(false)
                    .prompt("string")
                    .build())
                .summarizationConfig(ToolDataStoreToolModalityConfigSummarizationConfigArgs.builder()
                    .disabled(false)
                    .modelSettings(ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs.builder()
                        .model("string")
                        .temperature(0.0)
                        .build())
                    .prompt("string")
                    .build())
                .build())
            .build())
        .project("string")
        .pythonFunction(ToolPythonFunctionArgs.builder()
            .description("string")
            .name("string")
            .pythonCode("string")
            .build())
        .timeout("string")
        .toolFakeConfig(ToolToolFakeConfigArgs.builder()
            .codeBlock(ToolToolFakeConfigCodeBlockArgs.builder()
                .pythonCode("string")
                .build())
            .enableFakeMode(false)
            .build())
        .clientFunction(ToolClientFunctionArgs.builder()
            .name("string")
            .description("string")
            .parameters(ToolClientFunctionParametersArgs.builder()
                .type("string")
                .maximum(0.0)
                .nullable(false)
                .defs("string")
                .description("string")
                .enums("string")
                .items("string")
                .maxItems(0)
                .additionalProperties("string")
                .default_("string")
                .minItems(0)
                .minimum(0.0)
                .prefixItems("string")
                .properties("string")
                .ref("string")
                .requireds("string")
                .title("string")
                .anyOf("string")
                .uniqueItems(false)
                .build())
            .response(ToolClientFunctionResponseArgs.builder()
                .type("string")
                .maximum(0.0)
                .nullable(false)
                .defs("string")
                .description("string")
                .enums("string")
                .items("string")
                .maxItems(0)
                .additionalProperties("string")
                .default_("string")
                .minItems(0)
                .minimum(0.0)
                .prefixItems("string")
                .properties("string")
                .ref("string")
                .requireds("string")
                .title("string")
                .anyOf("string")
                .uniqueItems(false)
                .build())
            .build())
        .widgetTool(ToolWidgetToolArgs.builder()
            .name("string")
            .dataMapping(ToolWidgetToolDataMappingArgs.builder()
                .fieldMappings(Map.of("string", "string"))
                .mode("string")
                .pythonFunction(ToolWidgetToolDataMappingPythonFunctionArgs.builder()
                    .description("string")
                    .name("string")
                    .pythonCode("string")
                    .build())
                .sourceToolName("string")
                .build())
            .description("string")
            .parameters(ToolWidgetToolParametersArgs.builder()
                .type("string")
                .maximum(0.0)
                .nullable(false)
                .defs("string")
                .description("string")
                .enums("string")
                .items("string")
                .maxItems(0)
                .additionalProperties("string")
                .default_("string")
                .minItems(0)
                .minimum(0.0)
                .prefixItems("string")
                .properties("string")
                .ref("string")
                .requireds("string")
                .title("string")
                .anyOf("string")
                .uniqueItems(false)
                .build())
            .textResponseConfig(ToolWidgetToolTextResponseConfigArgs.builder()
                .staticText("string")
                .textResponseInstruction("string")
                .type("string")
                .build())
            .uiConfig("string")
            .widgetType("string")
            .build())
        .build());
    
    tool_resource = gcp.ces.Tool("toolResource",
        location="string",
        app="string",
        tool_id="string",
        file_search_tool={
            "name": "string",
            "corpus_type": "string",
            "description": "string",
            "file_corpus": "string",
        },
        deletion_policy="string",
        execution_type="string",
        agent_tool={
            "name": "string",
            "agent": "string",
            "description": "string",
        },
        google_search_tool={
            "name": "string",
            "context_urls": ["string"],
            "description": "string",
            "exclude_domains": ["string"],
            "preferred_domains": ["string"],
            "prompt_config": {
                "text_prompt": "string",
                "voice_prompt": "string",
            },
        },
        data_store_tool={
            "name": "string",
            "boost_specs": [{
                "data_stores": ["string"],
                "specs": [{
                    "condition_boost_specs": [{
                        "condition": "string",
                        "boost": float(0),
                        "boost_control_spec": {
                            "attribute_type": "string",
                            "control_points": [{
                                "attribute_value": "string",
                                "boost_amount": float(0),
                            }],
                            "field_name": "string",
                            "interpolation_type": "string",
                        },
                    }],
                }],
            }],
            "data_store_source": {
                "data_store": {
                    "name": "string",
                    "connector_configs": [{
                        "collection": "string",
                        "collection_display_name": "string",
                        "data_source": "string",
                    }],
                    "create_time": "string",
                    "display_name": "string",
                    "document_processing_mode": "string",
                    "type": "string",
                },
                "filter": "string",
            },
            "description": "string",
            "engine_source": {
                "engine": "string",
                "data_store_sources": [{
                    "data_store": {
                        "name": "string",
                        "connector_configs": [{
                            "collection": "string",
                            "collection_display_name": "string",
                            "data_source": "string",
                        }],
                        "create_time": "string",
                        "display_name": "string",
                        "document_processing_mode": "string",
                        "type": "string",
                    },
                    "filter": "string",
                }],
                "filter": "string",
            },
            "filter_parameter_behavior": "string",
            "modality_configs": [{
                "modality_type": "string",
                "grounding_config": {
                    "disabled": False,
                    "grounding_level": float(0),
                },
                "rewriter_config": {
                    "model_settings": {
                        "model": "string",
                        "temperature": float(0),
                    },
                    "disabled": False,
                    "prompt": "string",
                },
                "summarization_config": {
                    "disabled": False,
                    "model_settings": {
                        "model": "string",
                        "temperature": float(0),
                    },
                    "prompt": "string",
                },
            }],
        },
        project="string",
        python_function={
            "description": "string",
            "name": "string",
            "python_code": "string",
        },
        timeout="string",
        tool_fake_config={
            "code_block": {
                "python_code": "string",
            },
            "enable_fake_mode": False,
        },
        client_function={
            "name": "string",
            "description": "string",
            "parameters": {
                "type": "string",
                "maximum": float(0),
                "nullable": False,
                "defs": "string",
                "description": "string",
                "enums": ["string"],
                "items": "string",
                "max_items": 0,
                "additional_properties": "string",
                "default": "string",
                "min_items": 0,
                "minimum": float(0),
                "prefix_items": "string",
                "properties": "string",
                "ref": "string",
                "requireds": ["string"],
                "title": "string",
                "any_of": "string",
                "unique_items": False,
            },
            "response": {
                "type": "string",
                "maximum": float(0),
                "nullable": False,
                "defs": "string",
                "description": "string",
                "enums": ["string"],
                "items": "string",
                "max_items": 0,
                "additional_properties": "string",
                "default": "string",
                "min_items": 0,
                "minimum": float(0),
                "prefix_items": "string",
                "properties": "string",
                "ref": "string",
                "requireds": ["string"],
                "title": "string",
                "any_of": "string",
                "unique_items": False,
            },
        },
        widget_tool={
            "name": "string",
            "data_mapping": {
                "field_mappings": {
                    "string": "string",
                },
                "mode": "string",
                "python_function": {
                    "description": "string",
                    "name": "string",
                    "python_code": "string",
                },
                "source_tool_name": "string",
            },
            "description": "string",
            "parameters": {
                "type": "string",
                "maximum": float(0),
                "nullable": False,
                "defs": "string",
                "description": "string",
                "enums": ["string"],
                "items": "string",
                "max_items": 0,
                "additional_properties": "string",
                "default": "string",
                "min_items": 0,
                "minimum": float(0),
                "prefix_items": "string",
                "properties": "string",
                "ref": "string",
                "requireds": ["string"],
                "title": "string",
                "any_of": "string",
                "unique_items": False,
            },
            "text_response_config": {
                "static_text": "string",
                "text_response_instruction": "string",
                "type": "string",
            },
            "ui_config": "string",
            "widget_type": "string",
        })
    
    const toolResource = new gcp.ces.Tool("toolResource", {
        location: "string",
        app: "string",
        toolId: "string",
        fileSearchTool: {
            name: "string",
            corpusType: "string",
            description: "string",
            fileCorpus: "string",
        },
        deletionPolicy: "string",
        executionType: "string",
        agentTool: {
            name: "string",
            agent: "string",
            description: "string",
        },
        googleSearchTool: {
            name: "string",
            contextUrls: ["string"],
            description: "string",
            excludeDomains: ["string"],
            preferredDomains: ["string"],
            promptConfig: {
                textPrompt: "string",
                voicePrompt: "string",
            },
        },
        dataStoreTool: {
            name: "string",
            boostSpecs: [{
                dataStores: ["string"],
                specs: [{
                    conditionBoostSpecs: [{
                        condition: "string",
                        boost: 0,
                        boostControlSpec: {
                            attributeType: "string",
                            controlPoints: [{
                                attributeValue: "string",
                                boostAmount: 0,
                            }],
                            fieldName: "string",
                            interpolationType: "string",
                        },
                    }],
                }],
            }],
            dataStoreSource: {
                dataStore: {
                    name: "string",
                    connectorConfigs: [{
                        collection: "string",
                        collectionDisplayName: "string",
                        dataSource: "string",
                    }],
                    createTime: "string",
                    displayName: "string",
                    documentProcessingMode: "string",
                    type: "string",
                },
                filter: "string",
            },
            description: "string",
            engineSource: {
                engine: "string",
                dataStoreSources: [{
                    dataStore: {
                        name: "string",
                        connectorConfigs: [{
                            collection: "string",
                            collectionDisplayName: "string",
                            dataSource: "string",
                        }],
                        createTime: "string",
                        displayName: "string",
                        documentProcessingMode: "string",
                        type: "string",
                    },
                    filter: "string",
                }],
                filter: "string",
            },
            filterParameterBehavior: "string",
            modalityConfigs: [{
                modalityType: "string",
                groundingConfig: {
                    disabled: false,
                    groundingLevel: 0,
                },
                rewriterConfig: {
                    modelSettings: {
                        model: "string",
                        temperature: 0,
                    },
                    disabled: false,
                    prompt: "string",
                },
                summarizationConfig: {
                    disabled: false,
                    modelSettings: {
                        model: "string",
                        temperature: 0,
                    },
                    prompt: "string",
                },
            }],
        },
        project: "string",
        pythonFunction: {
            description: "string",
            name: "string",
            pythonCode: "string",
        },
        timeout: "string",
        toolFakeConfig: {
            codeBlock: {
                pythonCode: "string",
            },
            enableFakeMode: false,
        },
        clientFunction: {
            name: "string",
            description: "string",
            parameters: {
                type: "string",
                maximum: 0,
                nullable: false,
                defs: "string",
                description: "string",
                enums: ["string"],
                items: "string",
                maxItems: 0,
                additionalProperties: "string",
                "default": "string",
                minItems: 0,
                minimum: 0,
                prefixItems: "string",
                properties: "string",
                ref: "string",
                requireds: ["string"],
                title: "string",
                anyOf: "string",
                uniqueItems: false,
            },
            response: {
                type: "string",
                maximum: 0,
                nullable: false,
                defs: "string",
                description: "string",
                enums: ["string"],
                items: "string",
                maxItems: 0,
                additionalProperties: "string",
                "default": "string",
                minItems: 0,
                minimum: 0,
                prefixItems: "string",
                properties: "string",
                ref: "string",
                requireds: ["string"],
                title: "string",
                anyOf: "string",
                uniqueItems: false,
            },
        },
        widgetTool: {
            name: "string",
            dataMapping: {
                fieldMappings: {
                    string: "string",
                },
                mode: "string",
                pythonFunction: {
                    description: "string",
                    name: "string",
                    pythonCode: "string",
                },
                sourceToolName: "string",
            },
            description: "string",
            parameters: {
                type: "string",
                maximum: 0,
                nullable: false,
                defs: "string",
                description: "string",
                enums: ["string"],
                items: "string",
                maxItems: 0,
                additionalProperties: "string",
                "default": "string",
                minItems: 0,
                minimum: 0,
                prefixItems: "string",
                properties: "string",
                ref: "string",
                requireds: ["string"],
                title: "string",
                anyOf: "string",
                uniqueItems: false,
            },
            textResponseConfig: {
                staticText: "string",
                textResponseInstruction: "string",
                type: "string",
            },
            uiConfig: "string",
            widgetType: "string",
        },
    });
    
    type: gcp:ces:Tool
    properties:
        agentTool:
            agent: string
            description: string
            name: string
        app: string
        clientFunction:
            description: string
            name: string
            parameters:
                additionalProperties: string
                anyOf: string
                default: string
                defs: string
                description: string
                enums:
                    - string
                items: string
                maxItems: 0
                maximum: 0
                minItems: 0
                minimum: 0
                nullable: false
                prefixItems: string
                properties: string
                ref: string
                requireds:
                    - string
                title: string
                type: string
                uniqueItems: false
            response:
                additionalProperties: string
                anyOf: string
                default: string
                defs: string
                description: string
                enums:
                    - string
                items: string
                maxItems: 0
                maximum: 0
                minItems: 0
                minimum: 0
                nullable: false
                prefixItems: string
                properties: string
                ref: string
                requireds:
                    - string
                title: string
                type: string
                uniqueItems: false
        dataStoreTool:
            boostSpecs:
                - dataStores:
                    - string
                  specs:
                    - conditionBoostSpecs:
                        - boost: 0
                          boostControlSpec:
                            attributeType: string
                            controlPoints:
                                - attributeValue: string
                                  boostAmount: 0
                            fieldName: string
                            interpolationType: string
                          condition: string
            dataStoreSource:
                dataStore:
                    connectorConfigs:
                        - collection: string
                          collectionDisplayName: string
                          dataSource: string
                    createTime: string
                    displayName: string
                    documentProcessingMode: string
                    name: string
                    type: string
                filter: string
            description: string
            engineSource:
                dataStoreSources:
                    - dataStore:
                        connectorConfigs:
                            - collection: string
                              collectionDisplayName: string
                              dataSource: string
                        createTime: string
                        displayName: string
                        documentProcessingMode: string
                        name: string
                        type: string
                      filter: string
                engine: string
                filter: string
            filterParameterBehavior: string
            modalityConfigs:
                - groundingConfig:
                    disabled: false
                    groundingLevel: 0
                  modalityType: string
                  rewriterConfig:
                    disabled: false
                    modelSettings:
                        model: string
                        temperature: 0
                    prompt: string
                  summarizationConfig:
                    disabled: false
                    modelSettings:
                        model: string
                        temperature: 0
                    prompt: string
            name: string
        deletionPolicy: string
        executionType: string
        fileSearchTool:
            corpusType: string
            description: string
            fileCorpus: string
            name: string
        googleSearchTool:
            contextUrls:
                - string
            description: string
            excludeDomains:
                - string
            name: string
            preferredDomains:
                - string
            promptConfig:
                textPrompt: string
                voicePrompt: string
        location: string
        project: string
        pythonFunction:
            description: string
            name: string
            pythonCode: string
        timeout: string
        toolFakeConfig:
            codeBlock:
                pythonCode: string
            enableFakeMode: false
        toolId: string
        widgetTool:
            dataMapping:
                fieldMappings:
                    string: string
                mode: string
                pythonFunction:
                    description: string
                    name: string
                    pythonCode: string
                sourceToolName: string
            description: string
            name: string
            parameters:
                additionalProperties: string
                anyOf: string
                default: string
                defs: string
                description: string
                enums:
                    - string
                items: string
                maxItems: 0
                maximum: 0
                minItems: 0
                minimum: 0
                nullable: false
                prefixItems: string
                properties: string
                ref: string
                requireds:
                    - string
                title: string
                type: string
                uniqueItems: false
            textResponseConfig:
                staticText: string
                textResponseInstruction: string
                type: string
            uiConfig: string
            widgetType: string
    

    Tool Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Tool resource accepts the following input properties:

    App string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    ToolId string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    AgentTool ToolAgentTool
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    ClientFunction ToolClientFunction
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    DataStoreTool ToolDataStoreTool
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    DeletionPolicy 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.
    ExecutionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    FileSearchTool ToolFileSearchTool
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    GoogleSearchTool ToolGoogleSearchTool
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PythonFunction ToolPythonFunction
    A Python function tool. Structure is documented below.
    Timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    ToolFakeConfig ToolToolFakeConfig
    Configuration for tool behavior in fake mode. Structure is documented below.
    WidgetTool ToolWidgetTool
    Represents a widget tool that the agent can invoke. Structure is documented below.
    App string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    ToolId string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    AgentTool ToolAgentToolArgs
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    ClientFunction ToolClientFunctionArgs
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    DataStoreTool ToolDataStoreToolArgs
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    DeletionPolicy 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.
    ExecutionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    FileSearchTool ToolFileSearchToolArgs
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    GoogleSearchTool ToolGoogleSearchToolArgs
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PythonFunction ToolPythonFunctionArgs
    A Python function tool. Structure is documented below.
    Timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    ToolFakeConfig ToolToolFakeConfigArgs
    Configuration for tool behavior in fake mode. Structure is documented below.
    WidgetTool ToolWidgetToolArgs
    Represents a widget tool that the agent can invoke. Structure is documented below.
    app string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    tool_id string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    agent_tool object
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    client_function object
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    data_store_tool object
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletion_policy 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.
    execution_type string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    file_search_tool object
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    google_search_tool object
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    python_function object
    A Python function tool. Structure is documented below.
    timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    tool_fake_config object
    Configuration for tool behavior in fake mode. Structure is documented below.
    widget_tool object
    Represents a widget tool that the agent can invoke. Structure is documented below.
    app String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    toolId String
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    agentTool ToolAgentTool
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    clientFunction ToolClientFunction
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    dataStoreTool ToolDataStoreTool
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletionPolicy 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.
    executionType String
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    fileSearchTool ToolFileSearchTool
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    googleSearchTool ToolGoogleSearchTool
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pythonFunction ToolPythonFunction
    A Python function tool. Structure is documented below.
    timeout String
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    toolFakeConfig ToolToolFakeConfig
    Configuration for tool behavior in fake mode. Structure is documented below.
    widgetTool ToolWidgetTool
    Represents a widget tool that the agent can invoke. Structure is documented below.
    app string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    toolId string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    agentTool ToolAgentTool
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    clientFunction ToolClientFunction
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    dataStoreTool ToolDataStoreTool
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletionPolicy 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.
    executionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    fileSearchTool ToolFileSearchTool
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    googleSearchTool ToolGoogleSearchTool
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pythonFunction ToolPythonFunction
    A Python function tool. Structure is documented below.
    timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    toolFakeConfig ToolToolFakeConfig
    Configuration for tool behavior in fake mode. Structure is documented below.
    widgetTool ToolWidgetTool
    Represents a widget tool that the agent can invoke. Structure is documented below.
    app str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    location str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    tool_id str
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    agent_tool ToolAgentToolArgs
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    client_function ToolClientFunctionArgs
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    data_store_tool ToolDataStoreToolArgs
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletion_policy str
    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.
    execution_type str
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    file_search_tool ToolFileSearchToolArgs
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    google_search_tool ToolGoogleSearchToolArgs
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    python_function ToolPythonFunctionArgs
    A Python function tool. Structure is documented below.
    timeout str
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    tool_fake_config ToolToolFakeConfigArgs
    Configuration for tool behavior in fake mode. Structure is documented below.
    widget_tool ToolWidgetToolArgs
    Represents a widget tool that the agent can invoke. Structure is documented below.
    app String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    toolId String
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    agentTool Property Map
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    clientFunction Property Map
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    dataStoreTool Property Map
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletionPolicy 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.
    executionType String
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    fileSearchTool Property Map
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    googleSearchTool Property Map
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pythonFunction Property Map
    A Python function tool. Structure is documented below.
    timeout String
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    toolFakeConfig Property Map
    Configuration for tool behavior in fake mode. Structure is documented below.
    widgetTool Property Map
    Represents a widget tool that the agent can invoke. Structure is documented below.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Tool resource produces the following output properties:

    ConnectorTools List<ToolConnectorTool>
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    CreateTime string
    Timestamp when the tool was created.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    Etag 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.
    GeneratedSummary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    Id string
    The provider-assigned unique ID for this managed resource.
    McpTools List<ToolMcpTool>
    An MCP tool. Structure is documented below.
    Name string
    (Output) The name of the system tool.
    OpenApiTools List<ToolOpenApiTool>
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    RemoteAgentTools List<ToolRemoteAgentTool>
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    SystemTools List<ToolSystemTool>
    The system tool. Structure is documented below.
    UpdateTime string
    Timestamp when the tool was last updated.
    ConnectorTools []ToolConnectorTool
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    CreateTime string
    Timestamp when the tool was created.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    Etag 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.
    GeneratedSummary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    Id string
    The provider-assigned unique ID for this managed resource.
    McpTools []ToolMcpTool
    An MCP tool. Structure is documented below.
    Name string
    (Output) The name of the system tool.
    OpenApiTools []ToolOpenApiTool
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    RemoteAgentTools []ToolRemoteAgentTool
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    SystemTools []ToolSystemTool
    The system tool. Structure is documented below.
    UpdateTime string
    Timestamp when the tool was last updated.
    connector_tools list(object)
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    create_time string
    Timestamp when the tool was created.
    display_name string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    generated_summary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    id string
    The provider-assigned unique ID for this managed resource.
    mcp_tools list(object)
    An MCP tool. Structure is documented below.
    name string
    (Output) The name of the system tool.
    open_api_tools list(object)
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    remote_agent_tools list(object)
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    system_tools list(object)
    The system tool. Structure is documented below.
    update_time string
    Timestamp when the tool was last updated.
    connectorTools List<ToolConnectorTool>
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    createTime String
    Timestamp when the tool was created.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    generatedSummary String
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    id String
    The provider-assigned unique ID for this managed resource.
    mcpTools List<ToolMcpTool>
    An MCP tool. Structure is documented below.
    name String
    (Output) The name of the system tool.
    openApiTools List<ToolOpenApiTool>
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    remoteAgentTools List<ToolRemoteAgentTool>
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    systemTools List<ToolSystemTool>
    The system tool. Structure is documented below.
    updateTime String
    Timestamp when the tool was last updated.
    connectorTools ToolConnectorTool[]
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    createTime string
    Timestamp when the tool was created.
    displayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    generatedSummary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    id string
    The provider-assigned unique ID for this managed resource.
    mcpTools ToolMcpTool[]
    An MCP tool. Structure is documented below.
    name string
    (Output) The name of the system tool.
    openApiTools ToolOpenApiTool[]
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    remoteAgentTools ToolRemoteAgentTool[]
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    systemTools ToolSystemTool[]
    The system tool. Structure is documented below.
    updateTime string
    Timestamp when the tool was last updated.
    connector_tools Sequence[ToolConnectorTool]
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    create_time str
    Timestamp when the tool was created.
    display_name str
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag str
    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.
    generated_summary str
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    id str
    The provider-assigned unique ID for this managed resource.
    mcp_tools Sequence[ToolMcpTool]
    An MCP tool. Structure is documented below.
    name str
    (Output) The name of the system tool.
    open_api_tools Sequence[ToolOpenApiTool]
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    remote_agent_tools Sequence[ToolRemoteAgentTool]
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    system_tools Sequence[ToolSystemTool]
    The system tool. Structure is documented below.
    update_time str
    Timestamp when the tool was last updated.
    connectorTools List<Property Map>
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    createTime String
    Timestamp when the tool was created.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    generatedSummary String
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    id String
    The provider-assigned unique ID for this managed resource.
    mcpTools List<Property Map>
    An MCP tool. Structure is documented below.
    name String
    (Output) The name of the system tool.
    openApiTools List<Property Map>
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    remoteAgentTools List<Property Map>
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    systemTools List<Property Map>
    The system tool. Structure is documented below.
    updateTime String
    Timestamp when the tool was last updated.

    Look up Existing Tool Resource

    Get an existing Tool resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ToolState, opts?: CustomResourceOptions): Tool
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            agent_tool: Optional[ToolAgentToolArgs] = None,
            app: Optional[str] = None,
            client_function: Optional[ToolClientFunctionArgs] = None,
            connector_tools: Optional[Sequence[ToolConnectorToolArgs]] = None,
            create_time: Optional[str] = None,
            data_store_tool: Optional[ToolDataStoreToolArgs] = None,
            deletion_policy: Optional[str] = None,
            display_name: Optional[str] = None,
            etag: Optional[str] = None,
            execution_type: Optional[str] = None,
            file_search_tool: Optional[ToolFileSearchToolArgs] = None,
            generated_summary: Optional[str] = None,
            google_search_tool: Optional[ToolGoogleSearchToolArgs] = None,
            location: Optional[str] = None,
            mcp_tools: Optional[Sequence[ToolMcpToolArgs]] = None,
            name: Optional[str] = None,
            open_api_tools: Optional[Sequence[ToolOpenApiToolArgs]] = None,
            project: Optional[str] = None,
            python_function: Optional[ToolPythonFunctionArgs] = None,
            remote_agent_tools: Optional[Sequence[ToolRemoteAgentToolArgs]] = None,
            system_tools: Optional[Sequence[ToolSystemToolArgs]] = None,
            timeout: Optional[str] = None,
            tool_fake_config: Optional[ToolToolFakeConfigArgs] = None,
            tool_id: Optional[str] = None,
            update_time: Optional[str] = None,
            widget_tool: Optional[ToolWidgetToolArgs] = None) -> Tool
    func GetTool(ctx *Context, name string, id IDInput, state *ToolState, opts ...ResourceOption) (*Tool, error)
    public static Tool Get(string name, Input<string> id, ToolState? state, CustomResourceOptions? opts = null)
    public static Tool get(String name, Output<String> id, ToolState state, CustomResourceOptions options)
    resources:  _:    type: gcp:ces:Tool    get:      id: ${id}
    import {
      to = gcp_ces_tool.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AgentTool ToolAgentTool
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    App string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    ClientFunction ToolClientFunction
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    ConnectorTools List<ToolConnectorTool>
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    CreateTime string
    Timestamp when the tool was created.
    DataStoreTool ToolDataStoreTool
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    DeletionPolicy 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.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    Etag 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.
    ExecutionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    FileSearchTool ToolFileSearchTool
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    GeneratedSummary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    GoogleSearchTool ToolGoogleSearchTool
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    McpTools List<ToolMcpTool>
    An MCP tool. Structure is documented below.
    Name string
    (Output) The name of the system tool.
    OpenApiTools List<ToolOpenApiTool>
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PythonFunction ToolPythonFunction
    A Python function tool. Structure is documented below.
    RemoteAgentTools List<ToolRemoteAgentTool>
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    SystemTools List<ToolSystemTool>
    The system tool. Structure is documented below.
    Timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    ToolFakeConfig ToolToolFakeConfig
    Configuration for tool behavior in fake mode. Structure is documented below.
    ToolId string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    UpdateTime string
    Timestamp when the tool was last updated.
    WidgetTool ToolWidgetTool
    Represents a widget tool that the agent can invoke. Structure is documented below.
    AgentTool ToolAgentToolArgs
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    App string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    ClientFunction ToolClientFunctionArgs
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    ConnectorTools []ToolConnectorToolArgs
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    CreateTime string
    Timestamp when the tool was created.
    DataStoreTool ToolDataStoreToolArgs
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    DeletionPolicy 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.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    Etag 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.
    ExecutionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    FileSearchTool ToolFileSearchToolArgs
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    GeneratedSummary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    GoogleSearchTool ToolGoogleSearchToolArgs
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    McpTools []ToolMcpToolArgs
    An MCP tool. Structure is documented below.
    Name string
    (Output) The name of the system tool.
    OpenApiTools []ToolOpenApiToolArgs
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PythonFunction ToolPythonFunctionArgs
    A Python function tool. Structure is documented below.
    RemoteAgentTools []ToolRemoteAgentToolArgs
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    SystemTools []ToolSystemToolArgs
    The system tool. Structure is documented below.
    Timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    ToolFakeConfig ToolToolFakeConfigArgs
    Configuration for tool behavior in fake mode. Structure is documented below.
    ToolId string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    UpdateTime string
    Timestamp when the tool was last updated.
    WidgetTool ToolWidgetToolArgs
    Represents a widget tool that the agent can invoke. Structure is documented below.
    agent_tool object
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    app string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    client_function object
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    connector_tools list(object)
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    create_time string
    Timestamp when the tool was created.
    data_store_tool object
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletion_policy 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.
    display_name string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    execution_type string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    file_search_tool object
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    generated_summary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    google_search_tool object
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    mcp_tools list(object)
    An MCP tool. Structure is documented below.
    name string
    (Output) The name of the system tool.
    open_api_tools list(object)
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    python_function object
    A Python function tool. Structure is documented below.
    remote_agent_tools list(object)
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    system_tools list(object)
    The system tool. Structure is documented below.
    timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    tool_fake_config object
    Configuration for tool behavior in fake mode. Structure is documented below.
    tool_id string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    update_time string
    Timestamp when the tool was last updated.
    widget_tool object
    Represents a widget tool that the agent can invoke. Structure is documented below.
    agentTool ToolAgentTool
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    app String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    clientFunction ToolClientFunction
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    connectorTools List<ToolConnectorTool>
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    createTime String
    Timestamp when the tool was created.
    dataStoreTool ToolDataStoreTool
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletionPolicy 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.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    executionType String
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    fileSearchTool ToolFileSearchTool
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    generatedSummary String
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    googleSearchTool ToolGoogleSearchTool
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    mcpTools List<ToolMcpTool>
    An MCP tool. Structure is documented below.
    name String
    (Output) The name of the system tool.
    openApiTools List<ToolOpenApiTool>
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pythonFunction ToolPythonFunction
    A Python function tool. Structure is documented below.
    remoteAgentTools List<ToolRemoteAgentTool>
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    systemTools List<ToolSystemTool>
    The system tool. Structure is documented below.
    timeout String
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    toolFakeConfig ToolToolFakeConfig
    Configuration for tool behavior in fake mode. Structure is documented below.
    toolId String
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    updateTime String
    Timestamp when the tool was last updated.
    widgetTool ToolWidgetTool
    Represents a widget tool that the agent can invoke. Structure is documented below.
    agentTool ToolAgentTool
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    app string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    clientFunction ToolClientFunction
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    connectorTools ToolConnectorTool[]
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    createTime string
    Timestamp when the tool was created.
    dataStoreTool ToolDataStoreTool
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletionPolicy 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.
    displayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    executionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    fileSearchTool ToolFileSearchTool
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    generatedSummary string
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    googleSearchTool ToolGoogleSearchTool
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    mcpTools ToolMcpTool[]
    An MCP tool. Structure is documented below.
    name string
    (Output) The name of the system tool.
    openApiTools ToolOpenApiTool[]
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pythonFunction ToolPythonFunction
    A Python function tool. Structure is documented below.
    remoteAgentTools ToolRemoteAgentTool[]
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    systemTools ToolSystemTool[]
    The system tool. Structure is documented below.
    timeout string
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    toolFakeConfig ToolToolFakeConfig
    Configuration for tool behavior in fake mode. Structure is documented below.
    toolId string
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    updateTime string
    Timestamp when the tool was last updated.
    widgetTool ToolWidgetTool
    Represents a widget tool that the agent can invoke. Structure is documented below.
    agent_tool ToolAgentToolArgs
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    app str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    client_function ToolClientFunctionArgs
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    connector_tools Sequence[ToolConnectorToolArgs]
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    create_time str
    Timestamp when the tool was created.
    data_store_tool ToolDataStoreToolArgs
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletion_policy str
    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.
    display_name str
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag str
    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.
    execution_type str
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    file_search_tool ToolFileSearchToolArgs
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    generated_summary str
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    google_search_tool ToolGoogleSearchToolArgs
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    location str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    mcp_tools Sequence[ToolMcpToolArgs]
    An MCP tool. Structure is documented below.
    name str
    (Output) The name of the system tool.
    open_api_tools Sequence[ToolOpenApiToolArgs]
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    python_function ToolPythonFunctionArgs
    A Python function tool. Structure is documented below.
    remote_agent_tools Sequence[ToolRemoteAgentToolArgs]
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    system_tools Sequence[ToolSystemToolArgs]
    The system tool. Structure is documented below.
    timeout str
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    tool_fake_config ToolToolFakeConfigArgs
    Configuration for tool behavior in fake mode. Structure is documented below.
    tool_id str
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    update_time str
    Timestamp when the tool was last updated.
    widget_tool ToolWidgetToolArgs
    Represents a widget tool that the agent can invoke. Structure is documented below.
    agentTool Property Map
    Represents a tool that allows the agent to call another agent. Structure is documented below.
    app String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    clientFunction Property Map
    Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. Structure is documented below.
    connectorTools List<Property Map>
    A ConnectorTool allows connections to different integrations. Structure is documented below.
    createTime String
    Timestamp when the tool was created.
    dataStoreTool Property Map
    Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. Structure is documented below.
    deletionPolicy 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.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    etag 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.
    executionType String
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    fileSearchTool Property Map
    The file search tool allows the agent to search across the files uploaded by the app/agent developer. Structure is documented below.
    generatedSummary String
    If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
    googleSearchTool Property Map
    Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search. Structure is documented below.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    mcpTools List<Property Map>
    An MCP tool. Structure is documented below.
    name String
    (Output) The name of the system tool.
    openApiTools List<Property Map>
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pythonFunction Property Map
    A Python function tool. Structure is documented below.
    remoteAgentTools List<Property Map>
    Represents a tool that allows the agent to call another remote agent. Structure is documented below.
    systemTools List<Property Map>
    The system tool. Structure is documented below.
    timeout String
    The timeout for the tool execution. If not set, the default timeout is 30 seconds for SYNCHRONOUS tools and 60 seconds for ASYNCHRONOUS tools.
    toolFakeConfig Property Map
    Configuration for tool behavior in fake mode. Structure is documented below.
    toolId String
    The ID to use for the tool, which will become the final component of the tool's resource name. If not provided, a unique ID will be automatically assigned for the tool.
    updateTime String
    Timestamp when the tool was last updated.
    widgetTool Property Map
    Represents a widget tool that the agent can invoke. Structure is documented below.

    Supporting Types

    ToolAgentTool, ToolAgentToolArgs

    Name string
    Required. The name of the agent tool.
    Agent string
    Optional. The resource name of the agent that is the entry point of the tool. Format: projects/{project}/locations/{location}/agents/{agent}
    Description string
    Optional. Description of the tool's purpose.
    Name string
    Required. The name of the agent tool.
    Agent string
    Optional. The resource name of the agent that is the entry point of the tool. Format: projects/{project}/locations/{location}/agents/{agent}
    Description string
    Optional. Description of the tool's purpose.
    name string
    Required. The name of the agent tool.
    agent string
    Optional. The resource name of the agent that is the entry point of the tool. Format: projects/{project}/locations/{location}/agents/{agent}
    description string
    Optional. Description of the tool's purpose.
    name String
    Required. The name of the agent tool.
    agent String
    Optional. The resource name of the agent that is the entry point of the tool. Format: projects/{project}/locations/{location}/agents/{agent}
    description String
    Optional. Description of the tool's purpose.
    name string
    Required. The name of the agent tool.
    agent string
    Optional. The resource name of the agent that is the entry point of the tool. Format: projects/{project}/locations/{location}/agents/{agent}
    description string
    Optional. Description of the tool's purpose.
    name str
    Required. The name of the agent tool.
    agent str
    Optional. The resource name of the agent that is the entry point of the tool. Format: projects/{project}/locations/{location}/agents/{agent}
    description str
    Optional. Description of the tool's purpose.
    name String
    Required. The name of the agent tool.
    agent String
    Optional. The resource name of the agent that is the entry point of the tool. Format: projects/{project}/locations/{location}/agents/{agent}
    description String
    Optional. Description of the tool's purpose.

    ToolClientFunction, ToolClientFunctionArgs

    Name string
    The function name.
    Description string
    The function description.
    Parameters ToolClientFunctionParameters
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    Response ToolClientFunctionResponse
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    Name string
    The function name.
    Description string
    The function description.
    Parameters ToolClientFunctionParameters
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    Response ToolClientFunctionResponse
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    name string
    The function name.
    description string
    The function description.
    parameters object
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    response object
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    name String
    The function name.
    description String
    The function description.
    parameters ToolClientFunctionParameters
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    response ToolClientFunctionResponse
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    name string
    The function name.
    description string
    The function description.
    parameters ToolClientFunctionParameters
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    response ToolClientFunctionResponse
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    name str
    The function name.
    description str
    The function description.
    parameters ToolClientFunctionParameters
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    response ToolClientFunctionResponse
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    name String
    The function name.
    description String
    The function description.
    parameters Property Map
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.
    response Property Map
    Represents a select subset of an OpenAPI 3.0 schema object. Structure is documented below.

    ToolClientFunctionParameters, ToolClientFunctionParametersArgs

    Type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    AdditionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    AnyOf string
    The instance value should be valid against at least one of the schemas in this list.
    Default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    Defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    Description string
    The description of the data.
    Enums List<string>
    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"]}
    Items string
    Schema of the elements of Type.ARRAY.
    MaxItems int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    Maximum double
    Maximum value for Type.INTEGER and Type.NUMBER.
    MinItems int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    Minimum double
    Minimum value for Type.INTEGER and Type.NUMBER.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Schemas of initial elements of Type.ARRAY.
    Properties string
    Properties of Type.OBJECT.
    Ref string
    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.
    Requireds List<string>
    Required properties of Type.OBJECT.
    Title string
    The title of the schema.
    UniqueItems bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    Type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    AdditionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    AnyOf string
    The instance value should be valid against at least one of the schemas in this list.
    Default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    Defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    Description string
    The description of the data.
    Enums []string
    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"]}
    Items string
    Schema of the elements of Type.ARRAY.
    MaxItems int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    Maximum float64
    Maximum value for Type.INTEGER and Type.NUMBER.
    MinItems int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    Minimum float64
    Minimum value for Type.INTEGER and Type.NUMBER.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Schemas of initial elements of Type.ARRAY.
    Properties string
    Properties of Type.OBJECT.
    Ref string
    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.
    Requireds []string
    Required properties of Type.OBJECT.
    Title string
    The title of the schema.
    UniqueItems bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additional_properties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    any_of string
    The instance value should be valid against at least one of the schemas in this list.
    default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description string
    The description of the data.
    enums list(string)
    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"]}
    items string
    Schema of the elements of Type.ARRAY.
    max_items number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum number
    Maximum value for Type.INTEGER and Type.NUMBER.
    min_items number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable bool
    Indicates if the value may be null.
    prefix_items string
    Schemas of initial elements of Type.ARRAY.
    properties string
    Properties of Type.OBJECT.
    ref string
    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.
    requireds list(string)
    Required properties of Type.OBJECT.
    title string
    The title of the schema.
    unique_items bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type String
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties String
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf String
    The instance value should be valid against at least one of the schemas in this list.
    default_ String
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs String
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description String
    The description of the data.
    enums List<String>
    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"]}
    items String
    Schema of the elements of Type.ARRAY.
    maxItems Integer
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum Double
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems Integer
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum Double
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Schemas of initial elements of Type.ARRAY.
    properties String
    Properties of Type.OBJECT.
    ref String
    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.
    requireds List<String>
    Required properties of Type.OBJECT.
    title String
    The title of the schema.
    uniqueItems Boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf string
    The instance value should be valid against at least one of the schemas in this list.
    default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description string
    The description of the data.
    enums string[]
    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"]}
    items string
    Schema of the elements of Type.ARRAY.
    maxItems number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum number
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable boolean
    Indicates if the value may be null.
    prefixItems string
    Schemas of initial elements of Type.ARRAY.
    properties string
    Properties of Type.OBJECT.
    ref string
    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.
    requireds string[]
    Required properties of Type.OBJECT.
    title string
    The title of the schema.
    uniqueItems boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type str
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additional_properties str
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    any_of str
    The instance value should be valid against at least one of the schemas in this list.
    default str
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs str
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description str
    The description of the data.
    enums Sequence[str]
    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"]}
    items str
    Schema of the elements of Type.ARRAY.
    max_items int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum float
    Maximum value for Type.INTEGER and Type.NUMBER.
    min_items int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum float
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable bool
    Indicates if the value may be null.
    prefix_items str
    Schemas of initial elements of Type.ARRAY.
    properties str
    Properties of Type.OBJECT.
    ref str
    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.
    requireds Sequence[str]
    Required properties of Type.OBJECT.
    title str
    The title of the schema.
    unique_items bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type String
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties String
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf String
    The instance value should be valid against at least one of the schemas in this list.
    default String
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs String
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description String
    The description of the data.
    enums List<String>
    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"]}
    items String
    Schema of the elements of Type.ARRAY.
    maxItems Number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum Number
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems Number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum Number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Schemas of initial elements of Type.ARRAY.
    properties String
    Properties of Type.OBJECT.
    ref String
    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.
    requireds List<String>
    Required properties of Type.OBJECT.
    title String
    The title of the schema.
    uniqueItems Boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.

    ToolClientFunctionResponse, ToolClientFunctionResponseArgs

    Type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    AdditionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    AnyOf string
    The instance value should be valid against at least one of the schemas in this list.
    Default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    Defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    Description string
    The description of the data.
    Enums List<string>
    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"]}
    Items string
    Schema of the elements of Type.ARRAY.
    MaxItems int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    Maximum double
    Maximum value for Type.INTEGER and Type.NUMBER.
    MinItems int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    Minimum double
    Minimum value for Type.INTEGER and Type.NUMBER.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Schemas of initial elements of Type.ARRAY.
    Properties string
    Properties of Type.OBJECT.
    Ref string
    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.
    Requireds List<string>
    Required properties of Type.OBJECT.
    Title string
    The title of the schema.
    UniqueItems bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    Type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    AdditionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    AnyOf string
    The instance value should be valid against at least one of the schemas in this list.
    Default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    Defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    Description string
    The description of the data.
    Enums []string
    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"]}
    Items string
    Schema of the elements of Type.ARRAY.
    MaxItems int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    Maximum float64
    Maximum value for Type.INTEGER and Type.NUMBER.
    MinItems int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    Minimum float64
    Minimum value for Type.INTEGER and Type.NUMBER.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Schemas of initial elements of Type.ARRAY.
    Properties string
    Properties of Type.OBJECT.
    Ref string
    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.
    Requireds []string
    Required properties of Type.OBJECT.
    Title string
    The title of the schema.
    UniqueItems bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additional_properties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    any_of string
    The instance value should be valid against at least one of the schemas in this list.
    default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description string
    The description of the data.
    enums list(string)
    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"]}
    items string
    Schema of the elements of Type.ARRAY.
    max_items number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum number
    Maximum value for Type.INTEGER and Type.NUMBER.
    min_items number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable bool
    Indicates if the value may be null.
    prefix_items string
    Schemas of initial elements of Type.ARRAY.
    properties string
    Properties of Type.OBJECT.
    ref string
    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.
    requireds list(string)
    Required properties of Type.OBJECT.
    title string
    The title of the schema.
    unique_items bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type String
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties String
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf String
    The instance value should be valid against at least one of the schemas in this list.
    default_ String
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs String
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description String
    The description of the data.
    enums List<String>
    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"]}
    items String
    Schema of the elements of Type.ARRAY.
    maxItems Integer
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum Double
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems Integer
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum Double
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Schemas of initial elements of Type.ARRAY.
    properties String
    Properties of Type.OBJECT.
    ref String
    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.
    requireds List<String>
    Required properties of Type.OBJECT.
    title String
    The title of the schema.
    uniqueItems Boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf string
    The instance value should be valid against at least one of the schemas in this list.
    default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description string
    The description of the data.
    enums string[]
    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"]}
    items string
    Schema of the elements of Type.ARRAY.
    maxItems number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum number
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable boolean
    Indicates if the value may be null.
    prefixItems string
    Schemas of initial elements of Type.ARRAY.
    properties string
    Properties of Type.OBJECT.
    ref string
    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.
    requireds string[]
    Required properties of Type.OBJECT.
    title string
    The title of the schema.
    uniqueItems boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type str
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additional_properties str
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    any_of str
    The instance value should be valid against at least one of the schemas in this list.
    default str
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs str
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description str
    The description of the data.
    enums Sequence[str]
    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"]}
    items str
    Schema of the elements of Type.ARRAY.
    max_items int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum float
    Maximum value for Type.INTEGER and Type.NUMBER.
    min_items int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum float
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable bool
    Indicates if the value may be null.
    prefix_items str
    Schemas of initial elements of Type.ARRAY.
    properties str
    Properties of Type.OBJECT.
    ref str
    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.
    requireds Sequence[str]
    Required properties of Type.OBJECT.
    title str
    The title of the schema.
    unique_items bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type String
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties String
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf String
    The instance value should be valid against at least one of the schemas in this list.
    default String
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs String
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description String
    The description of the data.
    enums List<String>
    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"]}
    items String
    Schema of the elements of Type.ARRAY.
    maxItems Number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum Number
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems Number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum Number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Schemas of initial elements of Type.ARRAY.
    properties String
    Properties of Type.OBJECT.
    ref String
    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.
    requireds List<String>
    Required properties of Type.OBJECT.
    title String
    The title of the schema.
    uniqueItems Boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.

    ToolConnectorTool, ToolConnectorToolArgs

    Actions List<ToolConnectorToolAction>
    (Output) Action for the tool to use. Structure is documented below.
    AuthConfig string
    (Output) Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. Represents a JSON object.
    Connection string
    (Output) The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}
    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    Actions []ToolConnectorToolAction
    (Output) Action for the tool to use. Structure is documented below.
    AuthConfig string
    (Output) Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. Represents a JSON object.
    Connection string
    (Output) The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}
    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    actions list(object)
    (Output) Action for the tool to use. Structure is documented below.
    auth_config string
    (Output) Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. Represents a JSON object.
    connection string
    (Output) The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    actions List<ToolConnectorToolAction>
    (Output) Action for the tool to use. Structure is documented below.
    authConfig String
    (Output) Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. Represents a JSON object.
    connection String
    (Output) The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.
    actions ToolConnectorToolAction[]
    (Output) Action for the tool to use. Structure is documented below.
    authConfig string
    (Output) Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. Represents a JSON object.
    connection string
    (Output) The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    actions Sequence[ToolConnectorToolAction]
    (Output) Action for the tool to use. Structure is documented below.
    auth_config str
    (Output) Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. Represents a JSON object.
    connection str
    (Output) The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}
    description str
    (Output) The description of the system tool.
    name str
    (Output) The name of the system tool.
    actions List<Property Map>
    (Output) Action for the tool to use. Structure is documented below.
    authConfig String
    (Output) Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. Represents a JSON object.
    connection String
    (Output) The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.

    ToolConnectorToolAction, ToolConnectorToolActionArgs

    ConnectionActionId string
    (Output) ID of a Connection action for the tool to use.
    EntityOperations List<ToolConnectorToolActionEntityOperation>
    (Output) Entity operation configuration for the tool to use. Structure is documented below.
    InputFields List<string>
    (Output) Entity fields to use as inputs for the operation.
    OutputFields List<string>
    (Output) Entity fields to return from the operation.
    ConnectionActionId string
    (Output) ID of a Connection action for the tool to use.
    EntityOperations []ToolConnectorToolActionEntityOperation
    (Output) Entity operation configuration for the tool to use. Structure is documented below.
    InputFields []string
    (Output) Entity fields to use as inputs for the operation.
    OutputFields []string
    (Output) Entity fields to return from the operation.
    connection_action_id string
    (Output) ID of a Connection action for the tool to use.
    entity_operations list(object)
    (Output) Entity operation configuration for the tool to use. Structure is documented below.
    input_fields list(string)
    (Output) Entity fields to use as inputs for the operation.
    output_fields list(string)
    (Output) Entity fields to return from the operation.
    connectionActionId String
    (Output) ID of a Connection action for the tool to use.
    entityOperations List<ToolConnectorToolActionEntityOperation>
    (Output) Entity operation configuration for the tool to use. Structure is documented below.
    inputFields List<String>
    (Output) Entity fields to use as inputs for the operation.
    outputFields List<String>
    (Output) Entity fields to return from the operation.
    connectionActionId string
    (Output) ID of a Connection action for the tool to use.
    entityOperations ToolConnectorToolActionEntityOperation[]
    (Output) Entity operation configuration for the tool to use. Structure is documented below.
    inputFields string[]
    (Output) Entity fields to use as inputs for the operation.
    outputFields string[]
    (Output) Entity fields to return from the operation.
    connection_action_id str
    (Output) ID of a Connection action for the tool to use.
    entity_operations Sequence[ToolConnectorToolActionEntityOperation]
    (Output) Entity operation configuration for the tool to use. Structure is documented below.
    input_fields Sequence[str]
    (Output) Entity fields to use as inputs for the operation.
    output_fields Sequence[str]
    (Output) Entity fields to return from the operation.
    connectionActionId String
    (Output) ID of a Connection action for the tool to use.
    entityOperations List<Property Map>
    (Output) Entity operation configuration for the tool to use. Structure is documented below.
    inputFields List<String>
    (Output) Entity fields to use as inputs for the operation.
    outputFields List<String>
    (Output) Entity fields to return from the operation.

    ToolConnectorToolActionEntityOperation, ToolConnectorToolActionEntityOperationArgs

    EntityId string
    (Output) ID of the entity.
    Operation string
    (Output) Operation to perform on the entity. Possible values: OPERATION_TYPE_UNSPECIFIED LIST GET CREATE UPDATE DELETE
    EntityId string
    (Output) ID of the entity.
    Operation string
    (Output) Operation to perform on the entity. Possible values: OPERATION_TYPE_UNSPECIFIED LIST GET CREATE UPDATE DELETE
    entity_id string
    (Output) ID of the entity.
    operation string
    (Output) Operation to perform on the entity. Possible values: OPERATION_TYPE_UNSPECIFIED LIST GET CREATE UPDATE DELETE
    entityId String
    (Output) ID of the entity.
    operation String
    (Output) Operation to perform on the entity. Possible values: OPERATION_TYPE_UNSPECIFIED LIST GET CREATE UPDATE DELETE
    entityId string
    (Output) ID of the entity.
    operation string
    (Output) Operation to perform on the entity. Possible values: OPERATION_TYPE_UNSPECIFIED LIST GET CREATE UPDATE DELETE
    entity_id str
    (Output) ID of the entity.
    operation str
    (Output) Operation to perform on the entity. Possible values: OPERATION_TYPE_UNSPECIFIED LIST GET CREATE UPDATE DELETE
    entityId String
    (Output) ID of the entity.
    operation String
    (Output) Operation to perform on the entity. Possible values: OPERATION_TYPE_UNSPECIFIED LIST GET CREATE UPDATE DELETE

    ToolDataStoreTool, ToolDataStoreToolArgs

    Name string
    The data store tool name.
    BoostSpecs List<ToolDataStoreToolBoostSpec>
    Boost specification to boost certain documents. Structure is documented below.
    DataStoreSource ToolDataStoreToolDataStoreSource
    Optional. Search within a single specific DataStore. Structure is documented below.
    Description string
    The tool description.
    EngineSource ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    FilterParameterBehavior string
    Optional. The filter parameter behavior. Possible values: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED ALWAYS_INCLUDE NEVER_INCLUDE Possible values are: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED, ALWAYS_INCLUDE, NEVER_INCLUDE.
    MaxResults int

    (Optional, Deprecated) Number of search results to return per query. The default value is 10. The maximum allowed value is 10.

    Warning: maxResults is deprecated and will be removed in a future release.

    Deprecated: maxResults is deprecated and will be removed in a future release.

    ModalityConfigs List<ToolDataStoreToolModalityConfig>
    The modality configs for the data store. Structure is documented below.
    Name string
    The data store tool name.
    BoostSpecs []ToolDataStoreToolBoostSpec
    Boost specification to boost certain documents. Structure is documented below.
    DataStoreSource ToolDataStoreToolDataStoreSource
    Optional. Search within a single specific DataStore. Structure is documented below.
    Description string
    The tool description.
    EngineSource ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    FilterParameterBehavior string
    Optional. The filter parameter behavior. Possible values: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED ALWAYS_INCLUDE NEVER_INCLUDE Possible values are: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED, ALWAYS_INCLUDE, NEVER_INCLUDE.
    MaxResults int

    (Optional, Deprecated) Number of search results to return per query. The default value is 10. The maximum allowed value is 10.

    Warning: maxResults is deprecated and will be removed in a future release.

    Deprecated: maxResults is deprecated and will be removed in a future release.

    ModalityConfigs []ToolDataStoreToolModalityConfig
    The modality configs for the data store. Structure is documented below.
    name string
    The data store tool name.
    boost_specs list(object)
    Boost specification to boost certain documents. Structure is documented below.
    data_store_source object
    Optional. Search within a single specific DataStore. Structure is documented below.
    description string
    The tool description.
    engine_source object
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    filter_parameter_behavior string
    Optional. The filter parameter behavior. Possible values: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED ALWAYS_INCLUDE NEVER_INCLUDE Possible values are: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED, ALWAYS_INCLUDE, NEVER_INCLUDE.
    max_results number

    (Optional, Deprecated) Number of search results to return per query. The default value is 10. The maximum allowed value is 10.

    Warning: maxResults is deprecated and will be removed in a future release.

    Deprecated: maxResults is deprecated and will be removed in a future release.

    modality_configs list(object)
    The modality configs for the data store. Structure is documented below.
    name String
    The data store tool name.
    boostSpecs List<ToolDataStoreToolBoostSpec>
    Boost specification to boost certain documents. Structure is documented below.
    dataStoreSource ToolDataStoreToolDataStoreSource
    Optional. Search within a single specific DataStore. Structure is documented below.
    description String
    The tool description.
    engineSource ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    filterParameterBehavior String
    Optional. The filter parameter behavior. Possible values: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED ALWAYS_INCLUDE NEVER_INCLUDE Possible values are: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED, ALWAYS_INCLUDE, NEVER_INCLUDE.
    maxResults Integer

    (Optional, Deprecated) Number of search results to return per query. The default value is 10. The maximum allowed value is 10.

    Warning: maxResults is deprecated and will be removed in a future release.

    Deprecated: maxResults is deprecated and will be removed in a future release.

    modalityConfigs List<ToolDataStoreToolModalityConfig>
    The modality configs for the data store. Structure is documented below.
    name string
    The data store tool name.
    boostSpecs ToolDataStoreToolBoostSpec[]
    Boost specification to boost certain documents. Structure is documented below.
    dataStoreSource ToolDataStoreToolDataStoreSource
    Optional. Search within a single specific DataStore. Structure is documented below.
    description string
    The tool description.
    engineSource ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    filterParameterBehavior string
    Optional. The filter parameter behavior. Possible values: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED ALWAYS_INCLUDE NEVER_INCLUDE Possible values are: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED, ALWAYS_INCLUDE, NEVER_INCLUDE.
    maxResults number

    (Optional, Deprecated) Number of search results to return per query. The default value is 10. The maximum allowed value is 10.

    Warning: maxResults is deprecated and will be removed in a future release.

    Deprecated: maxResults is deprecated and will be removed in a future release.

    modalityConfigs ToolDataStoreToolModalityConfig[]
    The modality configs for the data store. Structure is documented below.
    name str
    The data store tool name.
    boost_specs Sequence[ToolDataStoreToolBoostSpec]
    Boost specification to boost certain documents. Structure is documented below.
    data_store_source ToolDataStoreToolDataStoreSource
    Optional. Search within a single specific DataStore. Structure is documented below.
    description str
    The tool description.
    engine_source ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    filter_parameter_behavior str
    Optional. The filter parameter behavior. Possible values: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED ALWAYS_INCLUDE NEVER_INCLUDE Possible values are: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED, ALWAYS_INCLUDE, NEVER_INCLUDE.
    max_results int

    (Optional, Deprecated) Number of search results to return per query. The default value is 10. The maximum allowed value is 10.

    Warning: maxResults is deprecated and will be removed in a future release.

    Deprecated: maxResults is deprecated and will be removed in a future release.

    modality_configs Sequence[ToolDataStoreToolModalityConfig]
    The modality configs for the data store. Structure is documented below.
    name String
    The data store tool name.
    boostSpecs List<Property Map>
    Boost specification to boost certain documents. Structure is documented below.
    dataStoreSource Property Map
    Optional. Search within a single specific DataStore. Structure is documented below.
    description String
    The tool description.
    engineSource Property Map
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    filterParameterBehavior String
    Optional. The filter parameter behavior. Possible values: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED ALWAYS_INCLUDE NEVER_INCLUDE Possible values are: FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED, ALWAYS_INCLUDE, NEVER_INCLUDE.
    maxResults Number

    (Optional, Deprecated) Number of search results to return per query. The default value is 10. The maximum allowed value is 10.

    Warning: maxResults is deprecated and will be removed in a future release.

    Deprecated: maxResults is deprecated and will be removed in a future release.

    modalityConfigs List<Property Map>
    The modality configs for the data store. Structure is documented below.

    ToolDataStoreToolBoostSpec, ToolDataStoreToolBoostSpecArgs

    DataStores List<string>
    The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
    Specs List<ToolDataStoreToolBoostSpecSpec>
    A list of boosting specifications. Structure is documented below.
    DataStores []string
    The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
    Specs []ToolDataStoreToolBoostSpecSpec
    A list of boosting specifications. Structure is documented below.
    data_stores list(string)
    The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
    specs list(object)
    A list of boosting specifications. Structure is documented below.
    dataStores List<String>
    The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
    specs List<ToolDataStoreToolBoostSpecSpec>
    A list of boosting specifications. Structure is documented below.
    dataStores string[]
    The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
    specs ToolDataStoreToolBoostSpecSpec[]
    A list of boosting specifications. Structure is documented below.
    data_stores Sequence[str]
    The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
    specs Sequence[ToolDataStoreToolBoostSpecSpec]
    A list of boosting specifications. Structure is documented below.
    dataStores List<String>
    The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.
    specs List<Property Map>
    A list of boosting specifications. Structure is documented below.

    ToolDataStoreToolBoostSpecSpec, ToolDataStoreToolBoostSpecSpecArgs

    ConditionBoostSpecs List<ToolDataStoreToolBoostSpecSpecConditionBoostSpec>
    A list of boosting specifications. Structure is documented below.
    ConditionBoostSpecs []ToolDataStoreToolBoostSpecSpecConditionBoostSpec
    A list of boosting specifications. Structure is documented below.
    condition_boost_specs list(object)
    A list of boosting specifications. Structure is documented below.
    conditionBoostSpecs List<ToolDataStoreToolBoostSpecSpecConditionBoostSpec>
    A list of boosting specifications. Structure is documented below.
    conditionBoostSpecs ToolDataStoreToolBoostSpecSpecConditionBoostSpec[]
    A list of boosting specifications. Structure is documented below.
    condition_boost_specs Sequence[ToolDataStoreToolBoostSpecSpecConditionBoostSpec]
    A list of boosting specifications. Structure is documented below.
    conditionBoostSpecs List<Property Map>
    A list of boosting specifications. Structure is documented below.

    ToolDataStoreToolBoostSpecSpecConditionBoostSpec, ToolDataStoreToolBoostSpecSpecConditionBoostSpecArgs

    Condition string
    An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))
    Boost double
    Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored.
    BoostControlSpec ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec
    Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. Structure is documented below.
    Condition string
    An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))
    Boost float64
    Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored.
    BoostControlSpec ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec
    Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. Structure is documented below.
    condition string
    An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))
    boost number
    Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored.
    boost_control_spec object
    Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. Structure is documented below.
    condition String
    An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))
    boost Double
    Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored.
    boostControlSpec ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec
    Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. Structure is documented below.
    condition string
    An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))
    boost number
    Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored.
    boostControlSpec ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec
    Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. Structure is documented below.
    condition str
    An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))
    boost float
    Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored.
    boost_control_spec ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec
    Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. Structure is documented below.
    condition String
    An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))
    boost Number
    Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored.
    boostControlSpec Property Map
    Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. Structure is documented below.

    ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec, ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecArgs

    AttributeType string
    The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attributeValue = numerical_field_value. In the case of freshness however, attributeValue = (time.now() - datetime_field_value). Possible values: NUMERICAL FRESHNESS
    ControlPoints List<ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint>
    The control points used to define the curve. The monotonic function (defined through the interpolationType above) passes through the control points listed here. Structure is documented below.
    FieldName string
    The name of the field whose value will be used to determine the boost amount.
    InterpolationType string
    The interpolation type to be applied to connect the control points listed below. Possible values: LINEAR
    AttributeType string
    The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attributeValue = numerical_field_value. In the case of freshness however, attributeValue = (time.now() - datetime_field_value). Possible values: NUMERICAL FRESHNESS
    ControlPoints []ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint
    The control points used to define the curve. The monotonic function (defined through the interpolationType above) passes through the control points listed here. Structure is documented below.
    FieldName string
    The name of the field whose value will be used to determine the boost amount.
    InterpolationType string
    The interpolation type to be applied to connect the control points listed below. Possible values: LINEAR
    attribute_type string
    The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attributeValue = numerical_field_value. In the case of freshness however, attributeValue = (time.now() - datetime_field_value). Possible values: NUMERICAL FRESHNESS
    control_points list(object)
    The control points used to define the curve. The monotonic function (defined through the interpolationType above) passes through the control points listed here. Structure is documented below.
    field_name string
    The name of the field whose value will be used to determine the boost amount.
    interpolation_type string
    The interpolation type to be applied to connect the control points listed below. Possible values: LINEAR
    attributeType String
    The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attributeValue = numerical_field_value. In the case of freshness however, attributeValue = (time.now() - datetime_field_value). Possible values: NUMERICAL FRESHNESS
    controlPoints List<ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint>
    The control points used to define the curve. The monotonic function (defined through the interpolationType above) passes through the control points listed here. Structure is documented below.
    fieldName String
    The name of the field whose value will be used to determine the boost amount.
    interpolationType String
    The interpolation type to be applied to connect the control points listed below. Possible values: LINEAR
    attributeType string
    The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attributeValue = numerical_field_value. In the case of freshness however, attributeValue = (time.now() - datetime_field_value). Possible values: NUMERICAL FRESHNESS
    controlPoints ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint[]
    The control points used to define the curve. The monotonic function (defined through the interpolationType above) passes through the control points listed here. Structure is documented below.
    fieldName string
    The name of the field whose value will be used to determine the boost amount.
    interpolationType string
    The interpolation type to be applied to connect the control points listed below. Possible values: LINEAR
    attribute_type str
    The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attributeValue = numerical_field_value. In the case of freshness however, attributeValue = (time.now() - datetime_field_value). Possible values: NUMERICAL FRESHNESS
    control_points Sequence[ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint]
    The control points used to define the curve. The monotonic function (defined through the interpolationType above) passes through the control points listed here. Structure is documented below.
    field_name str
    The name of the field whose value will be used to determine the boost amount.
    interpolation_type str
    The interpolation type to be applied to connect the control points listed below. Possible values: LINEAR
    attributeType String
    The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attributeValue = numerical_field_value. In the case of freshness however, attributeValue = (time.now() - datetime_field_value). Possible values: NUMERICAL FRESHNESS
    controlPoints List<Property Map>
    The control points used to define the curve. The monotonic function (defined through the interpolationType above) passes through the control points listed here. Structure is documented below.
    fieldName String
    The name of the field whose value will be used to determine the boost amount.
    interpolationType String
    The interpolation type to be applied to connect the control points listed below. Possible values: LINEAR

    ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint, ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPointArgs

    AttributeValue string
    Can be one of:

    1. The numerical field value.
    2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: nDnM].
    BoostAmount double
    The value between -1 to 1 by which to boost the score if the attributeValue evaluates to the value specified above.
    AttributeValue string
    Can be one of:

    1. The numerical field value.
    2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: nDnM].
    BoostAmount float64
    The value between -1 to 1 by which to boost the score if the attributeValue evaluates to the value specified above.
    attribute_value string
    Can be one of:

    1. The numerical field value.
    2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: nDnM].
    boost_amount number
    The value between -1 to 1 by which to boost the score if the attributeValue evaluates to the value specified above.
    attributeValue String
    Can be one of:

    1. The numerical field value.
    2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: nDnM].
    boostAmount Double
    The value between -1 to 1 by which to boost the score if the attributeValue evaluates to the value specified above.
    attributeValue string
    Can be one of:

    1. The numerical field value.
    2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: nDnM].
    boostAmount number
    The value between -1 to 1 by which to boost the score if the attributeValue evaluates to the value specified above.
    attribute_value str
    Can be one of:

    1. The numerical field value.
    2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: nDnM].
    boost_amount float
    The value between -1 to 1 by which to boost the score if the attributeValue evaluates to the value specified above.
    attributeValue String
    Can be one of:

    1. The numerical field value.
    2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: nDnM].
    boostAmount Number
    The value between -1 to 1 by which to boost the score if the attributeValue evaluates to the value specified above.

    ToolDataStoreToolDataStoreSource, ToolDataStoreToolDataStoreSourceArgs

    DataStore ToolDataStoreToolDataStoreSourceDataStore
    Optional. The data store. Structure is documented below.
    Filter string
    Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    DataStore ToolDataStoreToolDataStoreSourceDataStore
    Optional. The data store. Structure is documented below.
    Filter string
    Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    data_store object
    Optional. The data store. Structure is documented below.
    filter string
    Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    dataStore ToolDataStoreToolDataStoreSourceDataStore
    Optional. The data store. Structure is documented below.
    filter String
    Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    dataStore ToolDataStoreToolDataStoreSourceDataStore
    Optional. The data store. Structure is documented below.
    filter string
    Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    data_store ToolDataStoreToolDataStoreSourceDataStore
    Optional. The data store. Structure is documented below.
    filter str
    Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    dataStore Property Map
    Optional. The data store. Structure is documented below.
    filter String
    Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

    ToolDataStoreToolDataStoreSourceDataStore, ToolDataStoreToolDataStoreSourceDataStoreArgs

    Name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    ConnectorConfigs List<ToolDataStoreToolDataStoreSourceDataStoreConnectorConfig>
    (Output) The connector config for the data store connection. Structure is documented below.
    CreateTime string
    (Output) Timestamp when the data store was created.
    DisplayName string
    (Output) The display name of the data store.
    DocumentProcessingMode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    Type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    Name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    ConnectorConfigs []ToolDataStoreToolDataStoreSourceDataStoreConnectorConfig
    (Output) The connector config for the data store connection. Structure is documented below.
    CreateTime string
    (Output) Timestamp when the data store was created.
    DisplayName string
    (Output) The display name of the data store.
    DocumentProcessingMode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    Type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connector_configs list(object)
    (Output) The connector config for the data store connection. Structure is documented below.
    create_time string
    (Output) Timestamp when the data store was created.
    display_name string
    (Output) The display name of the data store.
    document_processing_mode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name String
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connectorConfigs List<ToolDataStoreToolDataStoreSourceDataStoreConnectorConfig>
    (Output) The connector config for the data store connection. Structure is documented below.
    createTime String
    (Output) Timestamp when the data store was created.
    displayName String
    (Output) The display name of the data store.
    documentProcessingMode String
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type String

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connectorConfigs ToolDataStoreToolDataStoreSourceDataStoreConnectorConfig[]
    (Output) The connector config for the data store connection. Structure is documented below.
    createTime string
    (Output) Timestamp when the data store was created.
    displayName string
    (Output) The display name of the data store.
    documentProcessingMode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name str
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connector_configs Sequence[ToolDataStoreToolDataStoreSourceDataStoreConnectorConfig]
    (Output) The connector config for the data store connection. Structure is documented below.
    create_time str
    (Output) Timestamp when the data store was created.
    display_name str
    (Output) The display name of the data store.
    document_processing_mode str
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type str

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name String
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connectorConfigs List<Property Map>
    (Output) The connector config for the data store connection. Structure is documented below.
    createTime String
    (Output) Timestamp when the data store was created.
    displayName String
    (Output) The display name of the data store.
    documentProcessingMode String
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type String

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    ToolDataStoreToolDataStoreSourceDataStoreConnectorConfig, ToolDataStoreToolDataStoreSourceDataStoreConnectorConfigArgs

    Collection string
    Resource name of the collection the data store belongs to.
    CollectionDisplayName string
    Display name of the collection the data store belongs to.
    DataSource string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    Collection string
    Resource name of the collection the data store belongs to.
    CollectionDisplayName string
    Display name of the collection the data store belongs to.
    DataSource string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection string
    Resource name of the collection the data store belongs to.
    collection_display_name string
    Display name of the collection the data store belongs to.
    data_source string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection String
    Resource name of the collection the data store belongs to.
    collectionDisplayName String
    Display name of the collection the data store belongs to.
    dataSource String
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection string
    Resource name of the collection the data store belongs to.
    collectionDisplayName string
    Display name of the collection the data store belongs to.
    dataSource string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection str
    Resource name of the collection the data store belongs to.
    collection_display_name str
    Display name of the collection the data store belongs to.
    data_source str
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection String
    Resource name of the collection the data store belongs to.
    collectionDisplayName String
    Display name of the collection the data store belongs to.
    dataSource String
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.

    ToolDataStoreToolEngineSource, ToolDataStoreToolEngineSourceArgs

    Engine string
    Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
    DataStoreSources List<ToolDataStoreToolEngineSourceDataStoreSource>
    Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. Structure is documented below.
    Filter string
    A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    Engine string
    Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
    DataStoreSources []ToolDataStoreToolEngineSourceDataStoreSource
    Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. Structure is documented below.
    Filter string
    A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    engine string
    Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
    data_store_sources list(object)
    Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. Structure is documented below.
    filter string
    A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    engine String
    Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
    dataStoreSources List<ToolDataStoreToolEngineSourceDataStoreSource>
    Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. Structure is documented below.
    filter String
    A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    engine string
    Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
    dataStoreSources ToolDataStoreToolEngineSourceDataStoreSource[]
    Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. Structure is documented below.
    filter string
    A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    engine str
    Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
    data_store_sources Sequence[ToolDataStoreToolEngineSourceDataStoreSource]
    Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. Structure is documented below.
    filter str
    A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    engine String
    Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
    dataStoreSources List<Property Map>
    Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. Structure is documented below.
    filter String
    A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

    ToolDataStoreToolEngineSourceDataStoreSource, ToolDataStoreToolEngineSourceDataStoreSourceArgs

    DataStore ToolDataStoreToolEngineSourceDataStoreSourceDataStore
    A DataStore resource in Vertex AI Search. Structure is documented below.
    Filter string
    Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    DataStore ToolDataStoreToolEngineSourceDataStoreSourceDataStore
    A DataStore resource in Vertex AI Search. Structure is documented below.
    Filter string
    Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    data_store object
    A DataStore resource in Vertex AI Search. Structure is documented below.
    filter string
    Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    dataStore ToolDataStoreToolEngineSourceDataStoreSourceDataStore
    A DataStore resource in Vertex AI Search. Structure is documented below.
    filter String
    Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    dataStore ToolDataStoreToolEngineSourceDataStoreSourceDataStore
    A DataStore resource in Vertex AI Search. Structure is documented below.
    filter string
    Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    data_store ToolDataStoreToolEngineSourceDataStoreSourceDataStore
    A DataStore resource in Vertex AI Search. Structure is documented below.
    filter str
    Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
    dataStore Property Map
    A DataStore resource in Vertex AI Search. Structure is documented below.
    filter String
    Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

    ToolDataStoreToolEngineSourceDataStoreSourceDataStore, ToolDataStoreToolEngineSourceDataStoreSourceDataStoreArgs

    Name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    ConnectorConfigs List<ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig>
    (Output) The connector config for the data store connection. Structure is documented below.
    CreateTime string
    (Output) Timestamp when the data store was created.
    DisplayName string
    (Output) The display name of the data store.
    DocumentProcessingMode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    Type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    Name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    ConnectorConfigs []ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig
    (Output) The connector config for the data store connection. Structure is documented below.
    CreateTime string
    (Output) Timestamp when the data store was created.
    DisplayName string
    (Output) The display name of the data store.
    DocumentProcessingMode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    Type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connector_configs list(object)
    (Output) The connector config for the data store connection. Structure is documented below.
    create_time string
    (Output) Timestamp when the data store was created.
    display_name string
    (Output) The display name of the data store.
    document_processing_mode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name String
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connectorConfigs List<ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig>
    (Output) The connector config for the data store connection. Structure is documented below.
    createTime String
    (Output) Timestamp when the data store was created.
    displayName String
    (Output) The display name of the data store.
    documentProcessingMode String
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type String

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name string
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connectorConfigs ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig[]
    (Output) The connector config for the data store connection. Structure is documented below.
    createTime string
    (Output) Timestamp when the data store was created.
    displayName string
    (Output) The display name of the data store.
    documentProcessingMode string
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type string

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name str
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connector_configs Sequence[ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig]
    (Output) The connector config for the data store connection. Structure is documented below.
    create_time str
    (Output) Timestamp when the data store was created.
    display_name str
    (Output) The display name of the data store.
    document_processing_mode str
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type str

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    name String
    Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
    connectorConfigs List<Property Map>
    (Output) The connector config for the data store connection. Structure is documented below.
    createTime String
    (Output) Timestamp when the data store was created.
    displayName String
    (Output) The display name of the data store.
    documentProcessingMode String
    (Output) The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. Possible values: DOCUMENTS CHUNKS
    type String

    (Output) The type of the data store. This field is readonly and populated by the server. Possible values: PUBLIC_WEB UNSTRUCTURED FAQ CONNECTOR

    The connectorConfig block contains:

    ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig, ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfigArgs

    Collection string
    Resource name of the collection the data store belongs to.
    CollectionDisplayName string
    Display name of the collection the data store belongs to.
    DataSource string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    Collection string
    Resource name of the collection the data store belongs to.
    CollectionDisplayName string
    Display name of the collection the data store belongs to.
    DataSource string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection string
    Resource name of the collection the data store belongs to.
    collection_display_name string
    Display name of the collection the data store belongs to.
    data_source string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection String
    Resource name of the collection the data store belongs to.
    collectionDisplayName String
    Display name of the collection the data store belongs to.
    dataSource String
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection string
    Resource name of the collection the data store belongs to.
    collectionDisplayName string
    Display name of the collection the data store belongs to.
    dataSource string
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection str
    Resource name of the collection the data store belongs to.
    collection_display_name str
    Display name of the collection the data store belongs to.
    data_source str
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.
    collection String
    Resource name of the collection the data store belongs to.
    collectionDisplayName String
    Display name of the collection the data store belongs to.
    dataSource String
    The name of the data source. Example: 'salesforce', 'jira', 'confluence', 'bigquery'.

    ToolDataStoreToolModalityConfig, ToolDataStoreToolModalityConfigArgs

    ModalityType string
    The modality type. Possible values: TEXT AUDIO
    GroundingConfig ToolDataStoreToolModalityConfigGroundingConfig
    Grounding configuration. Structure is documented below.
    RewriterConfig ToolDataStoreToolModalityConfigRewriterConfig
    Rewriter configuration. Structure is documented below.
    SummarizationConfig ToolDataStoreToolModalityConfigSummarizationConfig
    Summarization configuration. Structure is documented below.
    ModalityType string
    The modality type. Possible values: TEXT AUDIO
    GroundingConfig ToolDataStoreToolModalityConfigGroundingConfig
    Grounding configuration. Structure is documented below.
    RewriterConfig ToolDataStoreToolModalityConfigRewriterConfig
    Rewriter configuration. Structure is documented below.
    SummarizationConfig ToolDataStoreToolModalityConfigSummarizationConfig
    Summarization configuration. Structure is documented below.
    modality_type string
    The modality type. Possible values: TEXT AUDIO
    grounding_config object
    Grounding configuration. Structure is documented below.
    rewriter_config object
    Rewriter configuration. Structure is documented below.
    summarization_config object
    Summarization configuration. Structure is documented below.
    modalityType String
    The modality type. Possible values: TEXT AUDIO
    groundingConfig ToolDataStoreToolModalityConfigGroundingConfig
    Grounding configuration. Structure is documented below.
    rewriterConfig ToolDataStoreToolModalityConfigRewriterConfig
    Rewriter configuration. Structure is documented below.
    summarizationConfig ToolDataStoreToolModalityConfigSummarizationConfig
    Summarization configuration. Structure is documented below.
    modalityType string
    The modality type. Possible values: TEXT AUDIO
    groundingConfig ToolDataStoreToolModalityConfigGroundingConfig
    Grounding configuration. Structure is documented below.
    rewriterConfig ToolDataStoreToolModalityConfigRewriterConfig
    Rewriter configuration. Structure is documented below.
    summarizationConfig ToolDataStoreToolModalityConfigSummarizationConfig
    Summarization configuration. Structure is documented below.
    modality_type str
    The modality type. Possible values: TEXT AUDIO
    grounding_config ToolDataStoreToolModalityConfigGroundingConfig
    Grounding configuration. Structure is documented below.
    rewriter_config ToolDataStoreToolModalityConfigRewriterConfig
    Rewriter configuration. Structure is documented below.
    summarization_config ToolDataStoreToolModalityConfigSummarizationConfig
    Summarization configuration. Structure is documented below.
    modalityType String
    The modality type. Possible values: TEXT AUDIO
    groundingConfig Property Map
    Grounding configuration. Structure is documented below.
    rewriterConfig Property Map
    Rewriter configuration. Structure is documented below.
    summarizationConfig Property Map
    Summarization configuration. Structure is documented below.

    ToolDataStoreToolModalityConfigGroundingConfig, ToolDataStoreToolModalityConfigGroundingConfigArgs

    Disabled bool
    Whether grounding is disabled.
    GroundingLevel double
    The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.
    Disabled bool
    Whether grounding is disabled.
    GroundingLevel float64
    The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.
    disabled bool
    Whether grounding is disabled.
    grounding_level number
    The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.
    disabled Boolean
    Whether grounding is disabled.
    groundingLevel Double
    The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.
    disabled boolean
    Whether grounding is disabled.
    groundingLevel number
    The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.
    disabled bool
    Whether grounding is disabled.
    grounding_level float
    The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.
    disabled Boolean
    Whether grounding is disabled.
    groundingLevel Number
    The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.

    ToolDataStoreToolModalityConfigRewriterConfig, ToolDataStoreToolModalityConfigRewriterConfigArgs

    ModelSettings ToolDataStoreToolModalityConfigRewriterConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    Disabled bool
    Whether the rewriter is disabled.
    Prompt string
    The prompt definition. If not set, default prompt will be used.
    ModelSettings ToolDataStoreToolModalityConfigRewriterConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    Disabled bool
    Whether the rewriter is disabled.
    Prompt string
    The prompt definition. If not set, default prompt will be used.
    model_settings object
    Model settings contains various configurations for the LLM model. Structure is documented below.
    disabled bool
    Whether the rewriter is disabled.
    prompt string
    The prompt definition. If not set, default prompt will be used.
    modelSettings ToolDataStoreToolModalityConfigRewriterConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    disabled Boolean
    Whether the rewriter is disabled.
    prompt String
    The prompt definition. If not set, default prompt will be used.
    modelSettings ToolDataStoreToolModalityConfigRewriterConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    disabled boolean
    Whether the rewriter is disabled.
    prompt string
    The prompt definition. If not set, default prompt will be used.
    model_settings ToolDataStoreToolModalityConfigRewriterConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    disabled bool
    Whether the rewriter is disabled.
    prompt str
    The prompt definition. If not set, default prompt will be used.
    modelSettings Property Map
    Model settings contains various configurations for the LLM model. Structure is documented below.
    disabled Boolean
    Whether the rewriter is disabled.
    prompt String
    The prompt definition. If not set, default prompt will be used.

    ToolDataStoreToolModalityConfigRewriterConfigModelSettings, ToolDataStoreToolModalityConfigRewriterConfigModelSettingsArgs

    Model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    Temperature double
    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.
    Model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    Temperature float64
    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.
    model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature number
    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.
    model String
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature Double
    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.
    model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature number
    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.
    model str
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature float
    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.
    model String
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature Number
    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.

    ToolDataStoreToolModalityConfigSummarizationConfig, ToolDataStoreToolModalityConfigSummarizationConfigArgs

    Disabled bool
    Whether summarization is disabled.
    ModelSettings ToolDataStoreToolModalityConfigSummarizationConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    Prompt string
    The prompt definition. If not set, default prompt will be used.
    Disabled bool
    Whether summarization is disabled.
    ModelSettings ToolDataStoreToolModalityConfigSummarizationConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    Prompt string
    The prompt definition. If not set, default prompt will be used.
    disabled bool
    Whether summarization is disabled.
    model_settings object
    Model settings contains various configurations for the LLM model. Structure is documented below.
    prompt string
    The prompt definition. If not set, default prompt will be used.
    disabled Boolean
    Whether summarization is disabled.
    modelSettings ToolDataStoreToolModalityConfigSummarizationConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    prompt String
    The prompt definition. If not set, default prompt will be used.
    disabled boolean
    Whether summarization is disabled.
    modelSettings ToolDataStoreToolModalityConfigSummarizationConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    prompt string
    The prompt definition. If not set, default prompt will be used.
    disabled bool
    Whether summarization is disabled.
    model_settings ToolDataStoreToolModalityConfigSummarizationConfigModelSettings
    Model settings contains various configurations for the LLM model. Structure is documented below.
    prompt str
    The prompt definition. If not set, default prompt will be used.
    disabled Boolean
    Whether summarization is disabled.
    modelSettings Property Map
    Model settings contains various configurations for the LLM model. Structure is documented below.
    prompt String
    The prompt definition. If not set, default prompt will be used.

    ToolDataStoreToolModalityConfigSummarizationConfigModelSettings, ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs

    Model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    Temperature double
    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.
    Model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    Temperature float64
    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.
    model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature number
    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.
    model String
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature Double
    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.
    model string
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature number
    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.
    model str
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature float
    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.
    model String
    The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
    temperature Number
    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.

    ToolFileSearchTool, ToolFileSearchToolArgs

    Name string
    Required. The tool name.
    CorpusType string
    Optional. The type of the corpus. Default is FULLY_MANAGED. Possible values: CORPUS_TYPE_UNSPECIFIED USER_OWNED FULLY_MANAGED Possible values are: CORPUS_TYPE_UNSPECIFIED, USER_OWNED, FULLY_MANAGED.
    Description string
    Optional. The tool description.
    FileCorpus string
    Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
    Name string
    Required. The tool name.
    CorpusType string
    Optional. The type of the corpus. Default is FULLY_MANAGED. Possible values: CORPUS_TYPE_UNSPECIFIED USER_OWNED FULLY_MANAGED Possible values are: CORPUS_TYPE_UNSPECIFIED, USER_OWNED, FULLY_MANAGED.
    Description string
    Optional. The tool description.
    FileCorpus string
    Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
    name string
    Required. The tool name.
    corpus_type string
    Optional. The type of the corpus. Default is FULLY_MANAGED. Possible values: CORPUS_TYPE_UNSPECIFIED USER_OWNED FULLY_MANAGED Possible values are: CORPUS_TYPE_UNSPECIFIED, USER_OWNED, FULLY_MANAGED.
    description string
    Optional. The tool description.
    file_corpus string
    Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
    name String
    Required. The tool name.
    corpusType String
    Optional. The type of the corpus. Default is FULLY_MANAGED. Possible values: CORPUS_TYPE_UNSPECIFIED USER_OWNED FULLY_MANAGED Possible values are: CORPUS_TYPE_UNSPECIFIED, USER_OWNED, FULLY_MANAGED.
    description String
    Optional. The tool description.
    fileCorpus String
    Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
    name string
    Required. The tool name.
    corpusType string
    Optional. The type of the corpus. Default is FULLY_MANAGED. Possible values: CORPUS_TYPE_UNSPECIFIED USER_OWNED FULLY_MANAGED Possible values are: CORPUS_TYPE_UNSPECIFIED, USER_OWNED, FULLY_MANAGED.
    description string
    Optional. The tool description.
    fileCorpus string
    Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
    name str
    Required. The tool name.
    corpus_type str
    Optional. The type of the corpus. Default is FULLY_MANAGED. Possible values: CORPUS_TYPE_UNSPECIFIED USER_OWNED FULLY_MANAGED Possible values are: CORPUS_TYPE_UNSPECIFIED, USER_OWNED, FULLY_MANAGED.
    description str
    Optional. The tool description.
    file_corpus str
    Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
    name String
    Required. The tool name.
    corpusType String
    Optional. The type of the corpus. Default is FULLY_MANAGED. Possible values: CORPUS_TYPE_UNSPECIFIED USER_OWNED FULLY_MANAGED Possible values are: CORPUS_TYPE_UNSPECIFIED, USER_OWNED, FULLY_MANAGED.
    description String
    Optional. The tool description.
    fileCorpus String
    Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

    ToolGoogleSearchTool, ToolGoogleSearchToolArgs

    Name string
    The name of the tool.
    ContextUrls List<string>
    Content will be fetched directly from these URLs for context and grounding. More details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
    Description string
    Description of the tool's purpose.
    ExcludeDomains List<string>
    List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
    PreferredDomains List<string>
    Specifies domain names to guide the search. The model will be instructed to prioritize these domains when formulating queries for google search. This is a best-effort hint and these domains may or may not be exclusively reflected in the final search results. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
    PromptConfig ToolGoogleSearchToolPromptConfig
    Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. Structure is documented below.
    Name string
    The name of the tool.
    ContextUrls []string
    Content will be fetched directly from these URLs for context and grounding. More details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
    Description string
    Description of the tool's purpose.
    ExcludeDomains []string
    List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
    PreferredDomains []string
    Specifies domain names to guide the search. The model will be instructed to prioritize these domains when formulating queries for google search. This is a best-effort hint and these domains may or may not be exclusively reflected in the final search results. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
    PromptConfig ToolGoogleSearchToolPromptConfig
    Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. Structure is documented below.
    name string
    The name of the tool.
    context_urls list(string)
    Content will be fetched directly from these URLs for context and grounding. More details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
    description string
    Description of the tool's purpose.
    exclude_domains list(string)
    List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
    preferred_domains list(string)
    Specifies domain names to guide the search. The model will be instructed to prioritize these domains when formulating queries for google search. This is a best-effort hint and these domains may or may not be exclusively reflected in the final search results. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
    prompt_config object
    Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. Structure is documented below.
    name String
    The name of the tool.
    contextUrls List<String>
    Content will be fetched directly from these URLs for context and grounding. More details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
    description String
    Description of the tool's purpose.
    excludeDomains List<String>
    List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
    preferredDomains List<String>
    Specifies domain names to guide the search. The model will be instructed to prioritize these domains when formulating queries for google search. This is a best-effort hint and these domains may or may not be exclusively reflected in the final search results. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
    promptConfig ToolGoogleSearchToolPromptConfig
    Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. Structure is documented below.
    name string
    The name of the tool.
    contextUrls string[]
    Content will be fetched directly from these URLs for context and grounding. More details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
    description string
    Description of the tool's purpose.
    excludeDomains string[]
    List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
    preferredDomains string[]
    Specifies domain names to guide the search. The model will be instructed to prioritize these domains when formulating queries for google search. This is a best-effort hint and these domains may or may not be exclusively reflected in the final search results. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
    promptConfig ToolGoogleSearchToolPromptConfig
    Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. Structure is documented below.
    name str
    The name of the tool.
    context_urls Sequence[str]
    Content will be fetched directly from these URLs for context and grounding. More details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
    description str
    Description of the tool's purpose.
    exclude_domains Sequence[str]
    List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
    preferred_domains Sequence[str]
    Specifies domain names to guide the search. The model will be instructed to prioritize these domains when formulating queries for google search. This is a best-effort hint and these domains may or may not be exclusively reflected in the final search results. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
    prompt_config ToolGoogleSearchToolPromptConfig
    Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. Structure is documented below.
    name String
    The name of the tool.
    contextUrls List<String>
    Content will be fetched directly from these URLs for context and grounding. More details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.
    description String
    Description of the tool's purpose.
    excludeDomains List<String>
    List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
    preferredDomains List<String>
    Specifies domain names to guide the search. The model will be instructed to prioritize these domains when formulating queries for google search. This is a best-effort hint and these domains may or may not be exclusively reflected in the final search results. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
    promptConfig Property Map
    Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. Structure is documented below.

    ToolGoogleSearchToolPromptConfig, ToolGoogleSearchToolPromptConfigArgs

    TextPrompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
    VoicePrompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.
    TextPrompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
    VoicePrompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.
    text_prompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
    voice_prompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.
    textPrompt String
    Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
    voicePrompt String
    Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.
    textPrompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
    voicePrompt string
    Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.
    text_prompt str
    Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
    voice_prompt str
    Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.
    textPrompt String
    Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.
    voicePrompt String
    Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.

    ToolMcpTool, ToolMcpToolArgs

    ApiAuthentications List<ToolMcpToolApiAuthentication>
    (Output) Authentication information required for API calls. Structure is documented below.
    CustomHeaders Dictionary<string, string>
    (Output) The custom headers to send in the request to the MCP server. The values must be in the format $context.variables.<name_of_variable> and can be set in the session variables.
    Description string
    (Output) The description of the system tool.
    InputSchema string
    (Output) The schema of the input arguments of the MCP tool. Represents a JSON object.
    Name string
    (Output) The name of the system tool.
    NameOverride string
    (Output) The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
    OutputSchema string
    (Output) The schema of the output arguments of the MCP tool. Represents a JSON object.
    ServerAddress string
    (Output) The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the serverAddress in the McpToolset.
    ServiceDirectoryConfigs List<ToolMcpToolServiceDirectoryConfig>
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    State string
    (Output) The state of the MCP tool. Possible values: STATE_UNSPECIFIED ACTIVE INACTIVE STALE
    TlsConfigs List<ToolMcpToolTlsConfig>
    (Output) The TLS configuration. Structure is documented below.
    ApiAuthentications []ToolMcpToolApiAuthentication
    (Output) Authentication information required for API calls. Structure is documented below.
    CustomHeaders map[string]string
    (Output) The custom headers to send in the request to the MCP server. The values must be in the format $context.variables.<name_of_variable> and can be set in the session variables.
    Description string
    (Output) The description of the system tool.
    InputSchema string
    (Output) The schema of the input arguments of the MCP tool. Represents a JSON object.
    Name string
    (Output) The name of the system tool.
    NameOverride string
    (Output) The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
    OutputSchema string
    (Output) The schema of the output arguments of the MCP tool. Represents a JSON object.
    ServerAddress string
    (Output) The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the serverAddress in the McpToolset.
    ServiceDirectoryConfigs []ToolMcpToolServiceDirectoryConfig
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    State string
    (Output) The state of the MCP tool. Possible values: STATE_UNSPECIFIED ACTIVE INACTIVE STALE
    TlsConfigs []ToolMcpToolTlsConfig
    (Output) The TLS configuration. Structure is documented below.
    api_authentications list(object)
    (Output) Authentication information required for API calls. Structure is documented below.
    custom_headers map(string)
    (Output) The custom headers to send in the request to the MCP server. The values must be in the format $context.variables.<name_of_variable> and can be set in the session variables.
    description string
    (Output) The description of the system tool.
    input_schema string
    (Output) The schema of the input arguments of the MCP tool. Represents a JSON object.
    name string
    (Output) The name of the system tool.
    name_override string
    (Output) The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
    output_schema string
    (Output) The schema of the output arguments of the MCP tool. Represents a JSON object.
    server_address string
    (Output) The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the serverAddress in the McpToolset.
    service_directory_configs list(object)
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    state string
    (Output) The state of the MCP tool. Possible values: STATE_UNSPECIFIED ACTIVE INACTIVE STALE
    tls_configs list(object)
    (Output) The TLS configuration. Structure is documented below.
    apiAuthentications List<ToolMcpToolApiAuthentication>
    (Output) Authentication information required for API calls. Structure is documented below.
    customHeaders Map<String,String>
    (Output) The custom headers to send in the request to the MCP server. The values must be in the format $context.variables.<name_of_variable> and can be set in the session variables.
    description String
    (Output) The description of the system tool.
    inputSchema String
    (Output) The schema of the input arguments of the MCP tool. Represents a JSON object.
    name String
    (Output) The name of the system tool.
    nameOverride String
    (Output) The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
    outputSchema String
    (Output) The schema of the output arguments of the MCP tool. Represents a JSON object.
    serverAddress String
    (Output) The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the serverAddress in the McpToolset.
    serviceDirectoryConfigs List<ToolMcpToolServiceDirectoryConfig>
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    state String
    (Output) The state of the MCP tool. Possible values: STATE_UNSPECIFIED ACTIVE INACTIVE STALE
    tlsConfigs List<ToolMcpToolTlsConfig>
    (Output) The TLS configuration. Structure is documented below.
    apiAuthentications ToolMcpToolApiAuthentication[]
    (Output) Authentication information required for API calls. Structure is documented below.
    customHeaders {[key: string]: string}
    (Output) The custom headers to send in the request to the MCP server. The values must be in the format $context.variables.<name_of_variable> and can be set in the session variables.
    description string
    (Output) The description of the system tool.
    inputSchema string
    (Output) The schema of the input arguments of the MCP tool. Represents a JSON object.
    name string
    (Output) The name of the system tool.
    nameOverride string
    (Output) The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
    outputSchema string
    (Output) The schema of the output arguments of the MCP tool. Represents a JSON object.
    serverAddress string
    (Output) The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the serverAddress in the McpToolset.
    serviceDirectoryConfigs ToolMcpToolServiceDirectoryConfig[]
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    state string
    (Output) The state of the MCP tool. Possible values: STATE_UNSPECIFIED ACTIVE INACTIVE STALE
    tlsConfigs ToolMcpToolTlsConfig[]
    (Output) The TLS configuration. Structure is documented below.
    api_authentications Sequence[ToolMcpToolApiAuthentication]
    (Output) Authentication information required for API calls. Structure is documented below.
    custom_headers Mapping[str, str]
    (Output) The custom headers to send in the request to the MCP server. The values must be in the format $context.variables.<name_of_variable> and can be set in the session variables.
    description str
    (Output) The description of the system tool.
    input_schema str
    (Output) The schema of the input arguments of the MCP tool. Represents a JSON object.
    name str
    (Output) The name of the system tool.
    name_override str
    (Output) The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
    output_schema str
    (Output) The schema of the output arguments of the MCP tool. Represents a JSON object.
    server_address str
    (Output) The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the serverAddress in the McpToolset.
    service_directory_configs Sequence[ToolMcpToolServiceDirectoryConfig]
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    state str
    (Output) The state of the MCP tool. Possible values: STATE_UNSPECIFIED ACTIVE INACTIVE STALE
    tls_configs Sequence[ToolMcpToolTlsConfig]
    (Output) The TLS configuration. Structure is documented below.
    apiAuthentications List<Property Map>
    (Output) Authentication information required for API calls. Structure is documented below.
    customHeaders Map<String>
    (Output) The custom headers to send in the request to the MCP server. The values must be in the format $context.variables.<name_of_variable> and can be set in the session variables.
    description String
    (Output) The description of the system tool.
    inputSchema String
    (Output) The schema of the input arguments of the MCP tool. Represents a JSON object.
    name String
    (Output) The name of the system tool.
    nameOverride String
    (Output) The name override of the MCP tool. This is populated if the name was overridden by a Toolset override.
    outputSchema String
    (Output) The schema of the output arguments of the MCP tool. Represents a JSON object.
    serverAddress String
    (Output) The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the serverAddress in the McpToolset.
    serviceDirectoryConfigs List<Property Map>
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    state String
    (Output) The state of the MCP tool. Possible values: STATE_UNSPECIFIED ACTIVE INACTIVE STALE
    tlsConfigs List<Property Map>
    (Output) The TLS configuration. Structure is documented below.

    ToolMcpToolApiAuthentication, ToolMcpToolApiAuthenticationArgs

    ApiKeyConfigs List<ToolMcpToolApiAuthenticationApiKeyConfig>
    (Output) Configurations for authentication with API key. Structure is documented below.
    BearerTokenConfigs List<ToolMcpToolApiAuthenticationBearerTokenConfig>
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    OauthConfigs List<ToolMcpToolApiAuthenticationOauthConfig>
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    ServiceAccountAuthConfigs List<ToolMcpToolApiAuthenticationServiceAccountAuthConfig>
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    ServiceAgentIdTokenAuthConfigs List<ToolMcpToolApiAuthenticationServiceAgentIdTokenAuthConfig>
    (Output) Configurations for authentication with ID token generated from service agent.
    ApiKeyConfigs []ToolMcpToolApiAuthenticationApiKeyConfig
    (Output) Configurations for authentication with API key. Structure is documented below.
    BearerTokenConfigs []ToolMcpToolApiAuthenticationBearerTokenConfig
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    OauthConfigs []ToolMcpToolApiAuthenticationOauthConfig
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    ServiceAccountAuthConfigs []ToolMcpToolApiAuthenticationServiceAccountAuthConfig
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    ServiceAgentIdTokenAuthConfigs []ToolMcpToolApiAuthenticationServiceAgentIdTokenAuthConfig
    (Output) Configurations for authentication with ID token generated from service agent.
    api_key_configs list(object)
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearer_token_configs list(object)
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauth_configs list(object)
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    service_account_auth_configs list(object)
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    service_agent_id_token_auth_configs list(object)
    (Output) Configurations for authentication with ID token generated from service agent.
    apiKeyConfigs List<ToolMcpToolApiAuthenticationApiKeyConfig>
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearerTokenConfigs List<ToolMcpToolApiAuthenticationBearerTokenConfig>
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauthConfigs List<ToolMcpToolApiAuthenticationOauthConfig>
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    serviceAccountAuthConfigs List<ToolMcpToolApiAuthenticationServiceAccountAuthConfig>
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    serviceAgentIdTokenAuthConfigs List<ToolMcpToolApiAuthenticationServiceAgentIdTokenAuthConfig>
    (Output) Configurations for authentication with ID token generated from service agent.
    apiKeyConfigs ToolMcpToolApiAuthenticationApiKeyConfig[]
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearerTokenConfigs ToolMcpToolApiAuthenticationBearerTokenConfig[]
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauthConfigs ToolMcpToolApiAuthenticationOauthConfig[]
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    serviceAccountAuthConfigs ToolMcpToolApiAuthenticationServiceAccountAuthConfig[]
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    serviceAgentIdTokenAuthConfigs ToolMcpToolApiAuthenticationServiceAgentIdTokenAuthConfig[]
    (Output) Configurations for authentication with ID token generated from service agent.
    api_key_configs Sequence[ToolMcpToolApiAuthenticationApiKeyConfig]
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearer_token_configs Sequence[ToolMcpToolApiAuthenticationBearerTokenConfig]
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauth_configs Sequence[ToolMcpToolApiAuthenticationOauthConfig]
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    service_account_auth_configs Sequence[ToolMcpToolApiAuthenticationServiceAccountAuthConfig]
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    service_agent_id_token_auth_configs Sequence[ToolMcpToolApiAuthenticationServiceAgentIdTokenAuthConfig]
    (Output) Configurations for authentication with ID token generated from service agent.
    apiKeyConfigs List<Property Map>
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearerTokenConfigs List<Property Map>
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauthConfigs List<Property Map>
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    serviceAccountAuthConfigs List<Property Map>
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    serviceAgentIdTokenAuthConfigs List<Property Map>
    (Output) Configurations for authentication with ID token generated from service agent.

    ToolMcpToolApiAuthenticationApiKeyConfig, ToolMcpToolApiAuthenticationApiKeyConfigArgs

    ApiKeySecretVersion string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    KeyName string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    RequestLocation string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    ApiKeySecretVersion string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    KeyName string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    RequestLocation string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    api_key_secret_version string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    key_name string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    request_location string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    apiKeySecretVersion String
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    keyName String
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation String
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    apiKeySecretVersion string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    keyName string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    api_key_secret_version str
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    key_name str
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    request_location str
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    apiKeySecretVersion String
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    keyName String
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation String
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING

    ToolMcpToolApiAuthenticationBearerTokenConfig, ToolMcpToolApiAuthenticationBearerTokenConfigArgs

    Token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    Token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token String
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token str
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token String
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.

    ToolMcpToolApiAuthenticationOauthConfig, ToolMcpToolApiAuthenticationOauthConfigArgs

    ClientId string
    (Output) The client ID from the OAuth provider.
    ClientSecretVersion string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    OauthGrantType string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    Scopes List<string>
    (Output) The OAuth scopes to grant.
    TokenEndpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    ClientId string
    (Output) The client ID from the OAuth provider.
    ClientSecretVersion string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    OauthGrantType string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    Scopes []string
    (Output) The OAuth scopes to grant.
    TokenEndpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    client_id string
    (Output) The client ID from the OAuth provider.
    client_secret_version string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauth_grant_type string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes list(string)
    (Output) The OAuth scopes to grant.
    token_endpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    clientId String
    (Output) The client ID from the OAuth provider.
    clientSecretVersion String
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauthGrantType String
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes List<String>
    (Output) The OAuth scopes to grant.
    tokenEndpoint String
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    clientId string
    (Output) The client ID from the OAuth provider.
    clientSecretVersion string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauthGrantType string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes string[]
    (Output) The OAuth scopes to grant.
    tokenEndpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    client_id str
    (Output) The client ID from the OAuth provider.
    client_secret_version str
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauth_grant_type str
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes Sequence[str]
    (Output) The OAuth scopes to grant.
    token_endpoint str
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    clientId String
    (Output) The client ID from the OAuth provider.
    clientSecretVersion String
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauthGrantType String
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes List<String>
    (Output) The OAuth scopes to grant.
    tokenEndpoint String
    (Output) The token endpoint in the OAuth provider to exchange for an access token.

    ToolMcpToolApiAuthenticationServiceAccountAuthConfig, ToolMcpToolApiAuthenticationServiceAccountAuthConfigArgs

    ServiceAccount string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    ServiceAccount string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    service_account string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    serviceAccount String
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    serviceAccount string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    service_account str
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    serviceAccount String
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

    ToolMcpToolServiceDirectoryConfig, ToolMcpToolServiceDirectoryConfigArgs

    Service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    Service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service String
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service str
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service String
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.

    ToolMcpToolTlsConfig, ToolMcpToolTlsConfigArgs

    CaCerts List<ToolMcpToolTlsConfigCaCert>
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    CaCerts []ToolMcpToolTlsConfigCaCert
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    ca_certs list(object)
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<ToolMcpToolTlsConfigCaCert>
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts ToolMcpToolTlsConfigCaCert[]
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    ca_certs Sequence[ToolMcpToolTlsConfigCaCert]
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<Property Map>
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.

    ToolMcpToolTlsConfigCaCert, ToolMcpToolTlsConfigCaCertArgs

    Cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    Cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    display_name string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert String
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    displayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert str
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    display_name str
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert String
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.

    ToolOpenApiTool, ToolOpenApiToolArgs

    ApiAuthentications List<ToolOpenApiToolApiAuthentication>
    (Output) Authentication information required for API calls. Structure is documented below.
    Description string
    (Output) The description of the system tool.
    IgnoreUnknownFields bool
    (Output) If true, the agent will ignore unknown fields in the API response.
    Name string
    (Output) The name of the system tool.
    OpenApiSchema string
    (Output) The OpenAPI schema in JSON or YAML format.
    ServiceDirectoryConfigs List<ToolOpenApiToolServiceDirectoryConfig>
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    TlsConfigs List<ToolOpenApiToolTlsConfig>
    (Output) The TLS configuration. Structure is documented below.
    Url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    ApiAuthentications []ToolOpenApiToolApiAuthentication
    (Output) Authentication information required for API calls. Structure is documented below.
    Description string
    (Output) The description of the system tool.
    IgnoreUnknownFields bool
    (Output) If true, the agent will ignore unknown fields in the API response.
    Name string
    (Output) The name of the system tool.
    OpenApiSchema string
    (Output) The OpenAPI schema in JSON or YAML format.
    ServiceDirectoryConfigs []ToolOpenApiToolServiceDirectoryConfig
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    TlsConfigs []ToolOpenApiToolTlsConfig
    (Output) The TLS configuration. Structure is documented below.
    Url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    api_authentications list(object)
    (Output) Authentication information required for API calls. Structure is documented below.
    description string
    (Output) The description of the system tool.
    ignore_unknown_fields bool
    (Output) If true, the agent will ignore unknown fields in the API response.
    name string
    (Output) The name of the system tool.
    open_api_schema string
    (Output) The OpenAPI schema in JSON or YAML format.
    service_directory_configs list(object)
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    tls_configs list(object)
    (Output) The TLS configuration. Structure is documented below.
    url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    apiAuthentications List<ToolOpenApiToolApiAuthentication>
    (Output) Authentication information required for API calls. Structure is documented below.
    description String
    (Output) The description of the system tool.
    ignoreUnknownFields Boolean
    (Output) If true, the agent will ignore unknown fields in the API response.
    name String
    (Output) The name of the system tool.
    openApiSchema String
    (Output) The OpenAPI schema in JSON or YAML format.
    serviceDirectoryConfigs List<ToolOpenApiToolServiceDirectoryConfig>
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    tlsConfigs List<ToolOpenApiToolTlsConfig>
    (Output) The TLS configuration. Structure is documented below.
    url String
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    apiAuthentications ToolOpenApiToolApiAuthentication[]
    (Output) Authentication information required for API calls. Structure is documented below.
    description string
    (Output) The description of the system tool.
    ignoreUnknownFields boolean
    (Output) If true, the agent will ignore unknown fields in the API response.
    name string
    (Output) The name of the system tool.
    openApiSchema string
    (Output) The OpenAPI schema in JSON or YAML format.
    serviceDirectoryConfigs ToolOpenApiToolServiceDirectoryConfig[]
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    tlsConfigs ToolOpenApiToolTlsConfig[]
    (Output) The TLS configuration. Structure is documented below.
    url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    api_authentications Sequence[ToolOpenApiToolApiAuthentication]
    (Output) Authentication information required for API calls. Structure is documented below.
    description str
    (Output) The description of the system tool.
    ignore_unknown_fields bool
    (Output) If true, the agent will ignore unknown fields in the API response.
    name str
    (Output) The name of the system tool.
    open_api_schema str
    (Output) The OpenAPI schema in JSON or YAML format.
    service_directory_configs Sequence[ToolOpenApiToolServiceDirectoryConfig]
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    tls_configs Sequence[ToolOpenApiToolTlsConfig]
    (Output) The TLS configuration. Structure is documented below.
    url str
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    apiAuthentications List<Property Map>
    (Output) Authentication information required for API calls. Structure is documented below.
    description String
    (Output) The description of the system tool.
    ignoreUnknownFields Boolean
    (Output) If true, the agent will ignore unknown fields in the API response.
    name String
    (Output) The name of the system tool.
    openApiSchema String
    (Output) The OpenAPI schema in JSON or YAML format.
    serviceDirectoryConfigs List<Property Map>
    (Output) Configuration for tools using Service Directory. Structure is documented below.
    tlsConfigs List<Property Map>
    (Output) The TLS configuration. Structure is documented below.
    url String
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.

    ToolOpenApiToolApiAuthentication, ToolOpenApiToolApiAuthenticationArgs

    ApiKeyConfigs List<ToolOpenApiToolApiAuthenticationApiKeyConfig>
    (Output) Configurations for authentication with API key. Structure is documented below.
    BearerTokenConfigs List<ToolOpenApiToolApiAuthenticationBearerTokenConfig>
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    OauthConfigs List<ToolOpenApiToolApiAuthenticationOauthConfig>
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    ServiceAccountAuthConfigs List<ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig>
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    ServiceAgentIdTokenAuthConfigs List<ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig>
    (Output) Configurations for authentication with ID token generated from service agent.
    ApiKeyConfigs []ToolOpenApiToolApiAuthenticationApiKeyConfig
    (Output) Configurations for authentication with API key. Structure is documented below.
    BearerTokenConfigs []ToolOpenApiToolApiAuthenticationBearerTokenConfig
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    OauthConfigs []ToolOpenApiToolApiAuthenticationOauthConfig
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    ServiceAccountAuthConfigs []ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    ServiceAgentIdTokenAuthConfigs []ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig
    (Output) Configurations for authentication with ID token generated from service agent.
    api_key_configs list(object)
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearer_token_configs list(object)
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauth_configs list(object)
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    service_account_auth_configs list(object)
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    service_agent_id_token_auth_configs list(object)
    (Output) Configurations for authentication with ID token generated from service agent.
    apiKeyConfigs List<ToolOpenApiToolApiAuthenticationApiKeyConfig>
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearerTokenConfigs List<ToolOpenApiToolApiAuthenticationBearerTokenConfig>
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauthConfigs List<ToolOpenApiToolApiAuthenticationOauthConfig>
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    serviceAccountAuthConfigs List<ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig>
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    serviceAgentIdTokenAuthConfigs List<ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig>
    (Output) Configurations for authentication with ID token generated from service agent.
    apiKeyConfigs ToolOpenApiToolApiAuthenticationApiKeyConfig[]
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearerTokenConfigs ToolOpenApiToolApiAuthenticationBearerTokenConfig[]
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauthConfigs ToolOpenApiToolApiAuthenticationOauthConfig[]
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    serviceAccountAuthConfigs ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig[]
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    serviceAgentIdTokenAuthConfigs ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig[]
    (Output) Configurations for authentication with ID token generated from service agent.
    api_key_configs Sequence[ToolOpenApiToolApiAuthenticationApiKeyConfig]
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearer_token_configs Sequence[ToolOpenApiToolApiAuthenticationBearerTokenConfig]
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauth_configs Sequence[ToolOpenApiToolApiAuthenticationOauthConfig]
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    service_account_auth_configs Sequence[ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig]
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    service_agent_id_token_auth_configs Sequence[ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig]
    (Output) Configurations for authentication with ID token generated from service agent.
    apiKeyConfigs List<Property Map>
    (Output) Configurations for authentication with API key. Structure is documented below.
    bearerTokenConfigs List<Property Map>
    (Output) Configurations for authentication with a bearer token. Structure is documented below.
    oauthConfigs List<Property Map>
    (Output) Configurations for authentication with OAuth. Structure is documented below.
    serviceAccountAuthConfigs List<Property Map>
    (Output) Configurations for authentication using a custom service account. Structure is documented below.
    serviceAgentIdTokenAuthConfigs List<Property Map>
    (Output) Configurations for authentication with ID token generated from service agent.

    ToolOpenApiToolApiAuthenticationApiKeyConfig, ToolOpenApiToolApiAuthenticationApiKeyConfigArgs

    ApiKeySecretVersion string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    KeyName string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    RequestLocation string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    ApiKeySecretVersion string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    KeyName string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    RequestLocation string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    api_key_secret_version string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    key_name string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    request_location string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    apiKeySecretVersion String
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    keyName String
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation String
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    apiKeySecretVersion string
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    keyName string
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation string
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    api_key_secret_version str
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    key_name str
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    request_location str
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING
    apiKeySecretVersion String
    (Output) The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    keyName String
    (Output) The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation String
    (Output) Key location in the request. Possible values: HEADER QUERY_STRING

    ToolOpenApiToolApiAuthenticationBearerTokenConfig, ToolOpenApiToolApiAuthenticationBearerTokenConfigArgs

    Token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    Token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token String
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token string
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token str
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.
    token String
    (Output) The bearer token. Must be in the format $context.variables.<name_of_variable>.

    ToolOpenApiToolApiAuthenticationOauthConfig, ToolOpenApiToolApiAuthenticationOauthConfigArgs

    ClientId string
    (Output) The client ID from the OAuth provider.
    ClientSecretVersion string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    OauthGrantType string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    Scopes List<string>
    (Output) The OAuth scopes to grant.
    TokenEndpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    ClientId string
    (Output) The client ID from the OAuth provider.
    ClientSecretVersion string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    OauthGrantType string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    Scopes []string
    (Output) The OAuth scopes to grant.
    TokenEndpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    client_id string
    (Output) The client ID from the OAuth provider.
    client_secret_version string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauth_grant_type string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes list(string)
    (Output) The OAuth scopes to grant.
    token_endpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    clientId String
    (Output) The client ID from the OAuth provider.
    clientSecretVersion String
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauthGrantType String
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes List<String>
    (Output) The OAuth scopes to grant.
    tokenEndpoint String
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    clientId string
    (Output) The client ID from the OAuth provider.
    clientSecretVersion string
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauthGrantType string
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes string[]
    (Output) The OAuth scopes to grant.
    tokenEndpoint string
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    client_id str
    (Output) The client ID from the OAuth provider.
    client_secret_version str
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauth_grant_type str
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes Sequence[str]
    (Output) The OAuth scopes to grant.
    token_endpoint str
    (Output) The token endpoint in the OAuth provider to exchange for an access token.
    clientId String
    (Output) The client ID from the OAuth provider.
    clientSecretVersion String
    (Output) The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version} Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    oauthGrantType String
    (Output) OAuth grant types. Possible values: CLIENT_CREDENTIAL
    scopes List<String>
    (Output) The OAuth scopes to grant.
    tokenEndpoint String
    (Output) The token endpoint in the OAuth provider to exchange for an access token.

    ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig, ToolOpenApiToolApiAuthenticationServiceAccountAuthConfigArgs

    ServiceAccount string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    ServiceAccount string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    service_account string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    serviceAccount String
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    serviceAccount string
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    service_account str
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.
    serviceAccount String
    (Output) The email address of the service account used for authenticatation. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request. The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

    ToolOpenApiToolServiceDirectoryConfig, ToolOpenApiToolServiceDirectoryConfigArgs

    Service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    Service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service String
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service string
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service str
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.
    service String
    (Output) The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.

    ToolOpenApiToolTlsConfig, ToolOpenApiToolTlsConfigArgs

    CaCerts List<ToolOpenApiToolTlsConfigCaCert>
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    CaCerts []ToolOpenApiToolTlsConfigCaCert
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    ca_certs list(object)
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<ToolOpenApiToolTlsConfigCaCert>
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts ToolOpenApiToolTlsConfigCaCert[]
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    ca_certs Sequence[ToolOpenApiToolTlsConfigCaCert]
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<Property Map>
    (Output) Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.

    ToolOpenApiToolTlsConfigCaCert, ToolOpenApiToolTlsConfigCaCertArgs

    Cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    Cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    DisplayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    display_name string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert String
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert string
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    displayName string
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert str
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    display_name str
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert String
    (Output) The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr
    -signkey example.com.key
    -out example.com.crt
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") A base64-encoded string.
    displayName String
    (Output) The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.

    ToolPythonFunction, ToolPythonFunctionArgs

    Description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    Name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    PythonCode string
    Optional. The Python code to execute for the tool.
    Description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    Name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    PythonCode string
    Optional. The Python code to execute for the tool.
    description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    python_code string
    Optional. The Python code to execute for the tool.
    description String
    (Output) The description of the Python function, parsed from the python code's docstring.
    name String
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    pythonCode String
    Optional. The Python code to execute for the tool.
    description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    pythonCode string
    Optional. The Python code to execute for the tool.
    description str
    (Output) The description of the Python function, parsed from the python code's docstring.
    name str
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    python_code str
    Optional. The Python code to execute for the tool.
    description String
    (Output) The description of the Python function, parsed from the python code's docstring.
    name String
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    pythonCode String
    Optional. The Python code to execute for the tool.

    ToolRemoteAgentTool, ToolRemoteAgentToolArgs

    AgentCards List<ToolRemoteAgentToolAgentCard>
    (Output) The agent card of the remote agent that this tool invokes. Structure is documented below.
    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    AgentCards []ToolRemoteAgentToolAgentCard
    (Output) The agent card of the remote agent that this tool invokes. Structure is documented below.
    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    agent_cards list(object)
    (Output) The agent card of the remote agent that this tool invokes. Structure is documented below.
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    agentCards List<ToolRemoteAgentToolAgentCard>
    (Output) The agent card of the remote agent that this tool invokes. Structure is documented below.
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.
    agentCards ToolRemoteAgentToolAgentCard[]
    (Output) The agent card of the remote agent that this tool invokes. Structure is documented below.
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    agent_cards Sequence[ToolRemoteAgentToolAgentCard]
    (Output) The agent card of the remote agent that this tool invokes. Structure is documented below.
    description str
    (Output) The description of the system tool.
    name str
    (Output) The name of the system tool.
    agentCards List<Property Map>
    (Output) The agent card of the remote agent that this tool invokes. Structure is documented below.
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.

    ToolRemoteAgentToolAgentCard, ToolRemoteAgentToolAgentCardArgs

    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    Skills List<ToolRemoteAgentToolAgentCardSkill>
    (Output) Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. Structure is documented below.
    SupportedInterfaces List<ToolRemoteAgentToolAgentCardSupportedInterface>
    (Output) Ordered list of supported interfaces. The first entry is preferred. Structure is documented below.
    Version string
    (Output) The version of the agent.
    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    Skills []ToolRemoteAgentToolAgentCardSkill
    (Output) Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. Structure is documented below.
    SupportedInterfaces []ToolRemoteAgentToolAgentCardSupportedInterface
    (Output) Ordered list of supported interfaces. The first entry is preferred. Structure is documented below.
    Version string
    (Output) The version of the agent.
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    skills list(object)
    (Output) Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. Structure is documented below.
    supported_interfaces list(object)
    (Output) Ordered list of supported interfaces. The first entry is preferred. Structure is documented below.
    version string
    (Output) The version of the agent.
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.
    skills List<ToolRemoteAgentToolAgentCardSkill>
    (Output) Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. Structure is documented below.
    supportedInterfaces List<ToolRemoteAgentToolAgentCardSupportedInterface>
    (Output) Ordered list of supported interfaces. The first entry is preferred. Structure is documented below.
    version String
    (Output) The version of the agent.
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    skills ToolRemoteAgentToolAgentCardSkill[]
    (Output) Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. Structure is documented below.
    supportedInterfaces ToolRemoteAgentToolAgentCardSupportedInterface[]
    (Output) Ordered list of supported interfaces. The first entry is preferred. Structure is documented below.
    version string
    (Output) The version of the agent.
    description str
    (Output) The description of the system tool.
    name str
    (Output) The name of the system tool.
    skills Sequence[ToolRemoteAgentToolAgentCardSkill]
    (Output) Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. Structure is documented below.
    supported_interfaces Sequence[ToolRemoteAgentToolAgentCardSupportedInterface]
    (Output) Ordered list of supported interfaces. The first entry is preferred. Structure is documented below.
    version str
    (Output) The version of the agent.
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.
    skills List<Property Map>
    (Output) Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. Structure is documented below.
    supportedInterfaces List<Property Map>
    (Output) Ordered list of supported interfaces. The first entry is preferred. Structure is documented below.
    version String
    (Output) The version of the agent.

    ToolRemoteAgentToolAgentCardSkill, ToolRemoteAgentToolAgentCardSkillArgs

    Description string
    (Output) The description of the system tool.
    Examples List<string>
    (Output) Example prompts or scenarios that this skill can handle.
    Id string
    (Output) A unique identifier for the agent's skill.
    InputModes List<string>
    (Output) The set of supported input media types for this skill, overriding the agent's defaults.
    Name string
    (Output) The name of the system tool.
    OutputModes List<string>
    (Output) The set of supported output media types for this skill, overriding the agent's defaults.
    Tags List<string>
    (Output) A set of keywords describing the skill's capabilities.
    Description string
    (Output) The description of the system tool.
    Examples []string
    (Output) Example prompts or scenarios that this skill can handle.
    Id string
    (Output) A unique identifier for the agent's skill.
    InputModes []string
    (Output) The set of supported input media types for this skill, overriding the agent's defaults.
    Name string
    (Output) The name of the system tool.
    OutputModes []string
    (Output) The set of supported output media types for this skill, overriding the agent's defaults.
    Tags []string
    (Output) A set of keywords describing the skill's capabilities.
    description string
    (Output) The description of the system tool.
    examples list(string)
    (Output) Example prompts or scenarios that this skill can handle.
    id string
    (Output) A unique identifier for the agent's skill.
    input_modes list(string)
    (Output) The set of supported input media types for this skill, overriding the agent's defaults.
    name string
    (Output) The name of the system tool.
    output_modes list(string)
    (Output) The set of supported output media types for this skill, overriding the agent's defaults.
    tags list(string)
    (Output) A set of keywords describing the skill's capabilities.
    description String
    (Output) The description of the system tool.
    examples List<String>
    (Output) Example prompts or scenarios that this skill can handle.
    id String
    (Output) A unique identifier for the agent's skill.
    inputModes List<String>
    (Output) The set of supported input media types for this skill, overriding the agent's defaults.
    name String
    (Output) The name of the system tool.
    outputModes List<String>
    (Output) The set of supported output media types for this skill, overriding the agent's defaults.
    tags List<String>
    (Output) A set of keywords describing the skill's capabilities.
    description string
    (Output) The description of the system tool.
    examples string[]
    (Output) Example prompts or scenarios that this skill can handle.
    id string
    (Output) A unique identifier for the agent's skill.
    inputModes string[]
    (Output) The set of supported input media types for this skill, overriding the agent's defaults.
    name string
    (Output) The name of the system tool.
    outputModes string[]
    (Output) The set of supported output media types for this skill, overriding the agent's defaults.
    tags string[]
    (Output) A set of keywords describing the skill's capabilities.
    description str
    (Output) The description of the system tool.
    examples Sequence[str]
    (Output) Example prompts or scenarios that this skill can handle.
    id str
    (Output) A unique identifier for the agent's skill.
    input_modes Sequence[str]
    (Output) The set of supported input media types for this skill, overriding the agent's defaults.
    name str
    (Output) The name of the system tool.
    output_modes Sequence[str]
    (Output) The set of supported output media types for this skill, overriding the agent's defaults.
    tags Sequence[str]
    (Output) A set of keywords describing the skill's capabilities.
    description String
    (Output) The description of the system tool.
    examples List<String>
    (Output) Example prompts or scenarios that this skill can handle.
    id String
    (Output) A unique identifier for the agent's skill.
    inputModes List<String>
    (Output) The set of supported input media types for this skill, overriding the agent's defaults.
    name String
    (Output) The name of the system tool.
    outputModes List<String>
    (Output) The set of supported output media types for this skill, overriding the agent's defaults.
    tags List<String>
    (Output) A set of keywords describing the skill's capabilities.

    ToolRemoteAgentToolAgentCardSupportedInterface, ToolRemoteAgentToolAgentCardSupportedInterfaceArgs

    ProtocolBinding string
    (Output) The protocol binding supported at this URL. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON.
    ProtocolVersion string
    (Output) The version of the A2A protocol this interface exposes. Examples: "0.3", "1.0"
    Tenant string
    (Output) Tenant ID to be used in the request when calling the agent.
    Url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    ProtocolBinding string
    (Output) The protocol binding supported at this URL. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON.
    ProtocolVersion string
    (Output) The version of the A2A protocol this interface exposes. Examples: "0.3", "1.0"
    Tenant string
    (Output) Tenant ID to be used in the request when calling the agent.
    Url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    protocol_binding string
    (Output) The protocol binding supported at this URL. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON.
    protocol_version string
    (Output) The version of the A2A protocol this interface exposes. Examples: "0.3", "1.0"
    tenant string
    (Output) Tenant ID to be used in the request when calling the agent.
    url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    protocolBinding String
    (Output) The protocol binding supported at this URL. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON.
    protocolVersion String
    (Output) The version of the A2A protocol this interface exposes. Examples: "0.3", "1.0"
    tenant String
    (Output) Tenant ID to be used in the request when calling the agent.
    url String
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    protocolBinding string
    (Output) The protocol binding supported at this URL. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON.
    protocolVersion string
    (Output) The version of the A2A protocol this interface exposes. Examples: "0.3", "1.0"
    tenant string
    (Output) Tenant ID to be used in the request when calling the agent.
    url string
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    protocol_binding str
    (Output) The protocol binding supported at this URL. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON.
    protocol_version str
    (Output) The version of the A2A protocol this interface exposes. Examples: "0.3", "1.0"
    tenant str
    (Output) Tenant ID to be used in the request when calling the agent.
    url str
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
    protocolBinding String
    (Output) The protocol binding supported at this URL. The core ones officially supported are JSONRPC, GRPC and HTTP+JSON.
    protocolVersion String
    (Output) The version of the A2A protocol this interface exposes. Examples: "0.3", "1.0"
    tenant String
    (Output) Tenant ID to be used in the request when calling the agent.
    url String
    (Output) The URL where this interface is available. Must be a valid absolute HTTPS URL in production.

    ToolSystemTool, ToolSystemToolArgs

    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    Description string
    (Output) The description of the system tool.
    Name string
    (Output) The name of the system tool.
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.
    description string
    (Output) The description of the system tool.
    name string
    (Output) The name of the system tool.
    description str
    (Output) The description of the system tool.
    name str
    (Output) The name of the system tool.
    description String
    (Output) The description of the system tool.
    name String
    (Output) The name of the system tool.

    ToolToolFakeConfig, ToolToolFakeConfigArgs

    CodeBlock ToolToolFakeConfigCodeBlock
    Code block which will be executed instead of a real tool call. Structure is documented below.
    EnableFakeMode bool
    Whether the tool is using fake mode.
    CodeBlock ToolToolFakeConfigCodeBlock
    Code block which will be executed instead of a real tool call. Structure is documented below.
    EnableFakeMode bool
    Whether the tool is using fake mode.
    code_block object
    Code block which will be executed instead of a real tool call. Structure is documented below.
    enable_fake_mode bool
    Whether the tool is using fake mode.
    codeBlock ToolToolFakeConfigCodeBlock
    Code block which will be executed instead of a real tool call. Structure is documented below.
    enableFakeMode Boolean
    Whether the tool is using fake mode.
    codeBlock ToolToolFakeConfigCodeBlock
    Code block which will be executed instead of a real tool call. Structure is documented below.
    enableFakeMode boolean
    Whether the tool is using fake mode.
    code_block ToolToolFakeConfigCodeBlock
    Code block which will be executed instead of a real tool call. Structure is documented below.
    enable_fake_mode bool
    Whether the tool is using fake mode.
    codeBlock Property Map
    Code block which will be executed instead of a real tool call. Structure is documented below.
    enableFakeMode Boolean
    Whether the tool is using fake mode.

    ToolToolFakeConfigCodeBlock, ToolToolFakeConfigCodeBlockArgs

    PythonCode string
    Python code which will be invoked in tool fake mode.
    PythonCode string
    Python code which will be invoked in tool fake mode.
    python_code string
    Python code which will be invoked in tool fake mode.
    pythonCode String
    Python code which will be invoked in tool fake mode.
    pythonCode string
    Python code which will be invoked in tool fake mode.
    python_code str
    Python code which will be invoked in tool fake mode.
    pythonCode String
    Python code which will be invoked in tool fake mode.

    ToolWidgetTool, ToolWidgetToolArgs

    Name string
    Required. The display name of the widget tool.
    DataMapping ToolWidgetToolDataMapping
    Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. Structure is documented below.
    Description string
    Optional. The description of the widget tool.
    Parameters ToolWidgetToolParameters
    Optional. The input parameters of the widget tool. Represents a Schema object. Structure is documented below.
    TextResponseConfig ToolWidgetToolTextResponseConfig
    Optional. Configuration for always-included text responses. Structure is documented below.
    UiConfig string
    Optional. Configuration for rendering the widget. Represents a JSON object.
    WidgetType string
    Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. Possible values: WIDGET_TYPE_UNSPECIFIED CUSTOM PRODUCT_CAROUSEL PRODUCT_DETAILS QUICK_ACTIONS PRODUCT_COMPARISON ADVANCED_PRODUCT_DETAILS SHORT_FORM OVERALL_SATISFACTION ORDER_SUMMARY APPOINTMENT_DETAILS APPOINTMENT_SCHEDULER CONTACT_FORM Possible values are: WIDGET_TYPE_UNSPECIFIED, CUSTOM, PRODUCT_CAROUSEL, PRODUCT_DETAILS, QUICK_ACTIONS, PRODUCT_COMPARISON, ADVANCED_PRODUCT_DETAILS, SHORT_FORM, OVERALL_SATISFACTION, ORDER_SUMMARY, APPOINTMENT_DETAILS, APPOINTMENT_SCHEDULER, CONTACT_FORM.
    Name string
    Required. The display name of the widget tool.
    DataMapping ToolWidgetToolDataMapping
    Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. Structure is documented below.
    Description string
    Optional. The description of the widget tool.
    Parameters ToolWidgetToolParameters
    Optional. The input parameters of the widget tool. Represents a Schema object. Structure is documented below.
    TextResponseConfig ToolWidgetToolTextResponseConfig
    Optional. Configuration for always-included text responses. Structure is documented below.
    UiConfig string
    Optional. Configuration for rendering the widget. Represents a JSON object.
    WidgetType string
    Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. Possible values: WIDGET_TYPE_UNSPECIFIED CUSTOM PRODUCT_CAROUSEL PRODUCT_DETAILS QUICK_ACTIONS PRODUCT_COMPARISON ADVANCED_PRODUCT_DETAILS SHORT_FORM OVERALL_SATISFACTION ORDER_SUMMARY APPOINTMENT_DETAILS APPOINTMENT_SCHEDULER CONTACT_FORM Possible values are: WIDGET_TYPE_UNSPECIFIED, CUSTOM, PRODUCT_CAROUSEL, PRODUCT_DETAILS, QUICK_ACTIONS, PRODUCT_COMPARISON, ADVANCED_PRODUCT_DETAILS, SHORT_FORM, OVERALL_SATISFACTION, ORDER_SUMMARY, APPOINTMENT_DETAILS, APPOINTMENT_SCHEDULER, CONTACT_FORM.
    name string
    Required. The display name of the widget tool.
    data_mapping object
    Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. Structure is documented below.
    description string
    Optional. The description of the widget tool.
    parameters object
    Optional. The input parameters of the widget tool. Represents a Schema object. Structure is documented below.
    text_response_config object
    Optional. Configuration for always-included text responses. Structure is documented below.
    ui_config string
    Optional. Configuration for rendering the widget. Represents a JSON object.
    widget_type string
    Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. Possible values: WIDGET_TYPE_UNSPECIFIED CUSTOM PRODUCT_CAROUSEL PRODUCT_DETAILS QUICK_ACTIONS PRODUCT_COMPARISON ADVANCED_PRODUCT_DETAILS SHORT_FORM OVERALL_SATISFACTION ORDER_SUMMARY APPOINTMENT_DETAILS APPOINTMENT_SCHEDULER CONTACT_FORM Possible values are: WIDGET_TYPE_UNSPECIFIED, CUSTOM, PRODUCT_CAROUSEL, PRODUCT_DETAILS, QUICK_ACTIONS, PRODUCT_COMPARISON, ADVANCED_PRODUCT_DETAILS, SHORT_FORM, OVERALL_SATISFACTION, ORDER_SUMMARY, APPOINTMENT_DETAILS, APPOINTMENT_SCHEDULER, CONTACT_FORM.
    name String
    Required. The display name of the widget tool.
    dataMapping ToolWidgetToolDataMapping
    Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. Structure is documented below.
    description String
    Optional. The description of the widget tool.
    parameters ToolWidgetToolParameters
    Optional. The input parameters of the widget tool. Represents a Schema object. Structure is documented below.
    textResponseConfig ToolWidgetToolTextResponseConfig
    Optional. Configuration for always-included text responses. Structure is documented below.
    uiConfig String
    Optional. Configuration for rendering the widget. Represents a JSON object.
    widgetType String
    Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. Possible values: WIDGET_TYPE_UNSPECIFIED CUSTOM PRODUCT_CAROUSEL PRODUCT_DETAILS QUICK_ACTIONS PRODUCT_COMPARISON ADVANCED_PRODUCT_DETAILS SHORT_FORM OVERALL_SATISFACTION ORDER_SUMMARY APPOINTMENT_DETAILS APPOINTMENT_SCHEDULER CONTACT_FORM Possible values are: WIDGET_TYPE_UNSPECIFIED, CUSTOM, PRODUCT_CAROUSEL, PRODUCT_DETAILS, QUICK_ACTIONS, PRODUCT_COMPARISON, ADVANCED_PRODUCT_DETAILS, SHORT_FORM, OVERALL_SATISFACTION, ORDER_SUMMARY, APPOINTMENT_DETAILS, APPOINTMENT_SCHEDULER, CONTACT_FORM.
    name string
    Required. The display name of the widget tool.
    dataMapping ToolWidgetToolDataMapping
    Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. Structure is documented below.
    description string
    Optional. The description of the widget tool.
    parameters ToolWidgetToolParameters
    Optional. The input parameters of the widget tool. Represents a Schema object. Structure is documented below.
    textResponseConfig ToolWidgetToolTextResponseConfig
    Optional. Configuration for always-included text responses. Structure is documented below.
    uiConfig string
    Optional. Configuration for rendering the widget. Represents a JSON object.
    widgetType string
    Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. Possible values: WIDGET_TYPE_UNSPECIFIED CUSTOM PRODUCT_CAROUSEL PRODUCT_DETAILS QUICK_ACTIONS PRODUCT_COMPARISON ADVANCED_PRODUCT_DETAILS SHORT_FORM OVERALL_SATISFACTION ORDER_SUMMARY APPOINTMENT_DETAILS APPOINTMENT_SCHEDULER CONTACT_FORM Possible values are: WIDGET_TYPE_UNSPECIFIED, CUSTOM, PRODUCT_CAROUSEL, PRODUCT_DETAILS, QUICK_ACTIONS, PRODUCT_COMPARISON, ADVANCED_PRODUCT_DETAILS, SHORT_FORM, OVERALL_SATISFACTION, ORDER_SUMMARY, APPOINTMENT_DETAILS, APPOINTMENT_SCHEDULER, CONTACT_FORM.
    name str
    Required. The display name of the widget tool.
    data_mapping ToolWidgetToolDataMapping
    Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. Structure is documented below.
    description str
    Optional. The description of the widget tool.
    parameters ToolWidgetToolParameters
    Optional. The input parameters of the widget tool. Represents a Schema object. Structure is documented below.
    text_response_config ToolWidgetToolTextResponseConfig
    Optional. Configuration for always-included text responses. Structure is documented below.
    ui_config str
    Optional. Configuration for rendering the widget. Represents a JSON object.
    widget_type str
    Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. Possible values: WIDGET_TYPE_UNSPECIFIED CUSTOM PRODUCT_CAROUSEL PRODUCT_DETAILS QUICK_ACTIONS PRODUCT_COMPARISON ADVANCED_PRODUCT_DETAILS SHORT_FORM OVERALL_SATISFACTION ORDER_SUMMARY APPOINTMENT_DETAILS APPOINTMENT_SCHEDULER CONTACT_FORM Possible values are: WIDGET_TYPE_UNSPECIFIED, CUSTOM, PRODUCT_CAROUSEL, PRODUCT_DETAILS, QUICK_ACTIONS, PRODUCT_COMPARISON, ADVANCED_PRODUCT_DETAILS, SHORT_FORM, OVERALL_SATISFACTION, ORDER_SUMMARY, APPOINTMENT_DETAILS, APPOINTMENT_SCHEDULER, CONTACT_FORM.
    name String
    Required. The display name of the widget tool.
    dataMapping Property Map
    Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. Structure is documented below.
    description String
    Optional. The description of the widget tool.
    parameters Property Map
    Optional. The input parameters of the widget tool. Represents a Schema object. Structure is documented below.
    textResponseConfig Property Map
    Optional. Configuration for always-included text responses. Structure is documented below.
    uiConfig String
    Optional. Configuration for rendering the widget. Represents a JSON object.
    widgetType String
    Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. Possible values: WIDGET_TYPE_UNSPECIFIED CUSTOM PRODUCT_CAROUSEL PRODUCT_DETAILS QUICK_ACTIONS PRODUCT_COMPARISON ADVANCED_PRODUCT_DETAILS SHORT_FORM OVERALL_SATISFACTION ORDER_SUMMARY APPOINTMENT_DETAILS APPOINTMENT_SCHEDULER CONTACT_FORM Possible values are: WIDGET_TYPE_UNSPECIFIED, CUSTOM, PRODUCT_CAROUSEL, PRODUCT_DETAILS, QUICK_ACTIONS, PRODUCT_COMPARISON, ADVANCED_PRODUCT_DETAILS, SHORT_FORM, OVERALL_SATISFACTION, ORDER_SUMMARY, APPOINTMENT_DETAILS, APPOINTMENT_SCHEDULER, CONTACT_FORM.

    ToolWidgetToolDataMapping, ToolWidgetToolDataMappingArgs

    FieldMappings Dictionary<string, string>
    Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    Mode string
    Optional. The mode of the data mapping. Possible values: MODE_UNSPECIFIED FIELD_MAPPING PYTHON_SCRIPT Possible values are: MODE_UNSPECIFIED, FIELD_MAPPING, PYTHON_SCRIPT.
    PythonFunction ToolWidgetToolDataMappingPythonFunction
    Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. Structure is documented below.
    SourceToolName string
    Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: projects/{project}/locations/{location}/agents/{agent}/tools/{tool}
    FieldMappings map[string]string
    Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    Mode string
    Optional. The mode of the data mapping. Possible values: MODE_UNSPECIFIED FIELD_MAPPING PYTHON_SCRIPT Possible values are: MODE_UNSPECIFIED, FIELD_MAPPING, PYTHON_SCRIPT.
    PythonFunction ToolWidgetToolDataMappingPythonFunction
    Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. Structure is documented below.
    SourceToolName string
    Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: projects/{project}/locations/{location}/agents/{agent}/tools/{tool}
    field_mappings map(string)
    Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    mode string
    Optional. The mode of the data mapping. Possible values: MODE_UNSPECIFIED FIELD_MAPPING PYTHON_SCRIPT Possible values are: MODE_UNSPECIFIED, FIELD_MAPPING, PYTHON_SCRIPT.
    python_function object
    Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. Structure is documented below.
    source_tool_name string
    Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: projects/{project}/locations/{location}/agents/{agent}/tools/{tool}
    fieldMappings Map<String,String>
    Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    mode String
    Optional. The mode of the data mapping. Possible values: MODE_UNSPECIFIED FIELD_MAPPING PYTHON_SCRIPT Possible values are: MODE_UNSPECIFIED, FIELD_MAPPING, PYTHON_SCRIPT.
    pythonFunction ToolWidgetToolDataMappingPythonFunction
    Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. Structure is documented below.
    sourceToolName String
    Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: projects/{project}/locations/{location}/agents/{agent}/tools/{tool}
    fieldMappings {[key: string]: string}
    Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    mode string
    Optional. The mode of the data mapping. Possible values: MODE_UNSPECIFIED FIELD_MAPPING PYTHON_SCRIPT Possible values are: MODE_UNSPECIFIED, FIELD_MAPPING, PYTHON_SCRIPT.
    pythonFunction ToolWidgetToolDataMappingPythonFunction
    Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. Structure is documented below.
    sourceToolName string
    Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: projects/{project}/locations/{location}/agents/{agent}/tools/{tool}
    field_mappings Mapping[str, str]
    Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    mode str
    Optional. The mode of the data mapping. Possible values: MODE_UNSPECIFIED FIELD_MAPPING PYTHON_SCRIPT Possible values are: MODE_UNSPECIFIED, FIELD_MAPPING, PYTHON_SCRIPT.
    python_function ToolWidgetToolDataMappingPythonFunction
    Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. Structure is documented below.
    source_tool_name str
    Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: projects/{project}/locations/{location}/agents/{agent}/tools/{tool}
    fieldMappings Map<String>
    Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    mode String
    Optional. The mode of the data mapping. Possible values: MODE_UNSPECIFIED FIELD_MAPPING PYTHON_SCRIPT Possible values are: MODE_UNSPECIFIED, FIELD_MAPPING, PYTHON_SCRIPT.
    pythonFunction Property Map
    Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. Structure is documented below.
    sourceToolName String
    Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: projects/{project}/locations/{location}/agents/{agent}/tools/{tool}

    ToolWidgetToolDataMappingPythonFunction, ToolWidgetToolDataMappingPythonFunctionArgs

    Description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    Name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    PythonCode string
    Optional. The Python code to execute for the tool.
    Description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    Name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    PythonCode string
    Optional. The Python code to execute for the tool.
    description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    python_code string
    Optional. The Python code to execute for the tool.
    description String
    (Output) The description of the Python function, parsed from the python code's docstring.
    name String
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    pythonCode String
    Optional. The Python code to execute for the tool.
    description string
    (Output) The description of the Python function, parsed from the python code's docstring.
    name string
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    pythonCode string
    Optional. The Python code to execute for the tool.
    description str
    (Output) The description of the Python function, parsed from the python code's docstring.
    name str
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    python_code str
    Optional. The Python code to execute for the tool.
    description String
    (Output) The description of the Python function, parsed from the python code's docstring.
    name String
    Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.
    pythonCode String
    Optional. The Python code to execute for the tool.

    ToolWidgetToolParameters, ToolWidgetToolParametersArgs

    Type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    AdditionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    AnyOf string
    The instance value should be valid against at least one of the schemas in this list.
    Default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    Defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    Description string
    The description of the data.
    Enums List<string>
    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"]}
    Items string
    Schema of the elements of Type.ARRAY.
    MaxItems int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    Maximum double
    Maximum value for Type.INTEGER and Type.NUMBER.
    MinItems int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    Minimum double
    Minimum value for Type.INTEGER and Type.NUMBER.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Schemas of initial elements of Type.ARRAY.
    Properties string
    Properties of Type.OBJECT.
    Ref string
    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.
    Requireds List<string>
    Required properties of Type.OBJECT.
    Title string
    The title of the schema.
    UniqueItems bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    Type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    AdditionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    AnyOf string
    The instance value should be valid against at least one of the schemas in this list.
    Default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    Defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    Description string
    The description of the data.
    Enums []string
    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"]}
    Items string
    Schema of the elements of Type.ARRAY.
    MaxItems int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    Maximum float64
    Maximum value for Type.INTEGER and Type.NUMBER.
    MinItems int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    Minimum float64
    Minimum value for Type.INTEGER and Type.NUMBER.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Schemas of initial elements of Type.ARRAY.
    Properties string
    Properties of Type.OBJECT.
    Ref string
    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.
    Requireds []string
    Required properties of Type.OBJECT.
    Title string
    The title of the schema.
    UniqueItems bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additional_properties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    any_of string
    The instance value should be valid against at least one of the schemas in this list.
    default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description string
    The description of the data.
    enums list(string)
    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"]}
    items string
    Schema of the elements of Type.ARRAY.
    max_items number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum number
    Maximum value for Type.INTEGER and Type.NUMBER.
    min_items number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable bool
    Indicates if the value may be null.
    prefix_items string
    Schemas of initial elements of Type.ARRAY.
    properties string
    Properties of Type.OBJECT.
    ref string
    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.
    requireds list(string)
    Required properties of Type.OBJECT.
    title string
    The title of the schema.
    unique_items bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type String
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties String
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf String
    The instance value should be valid against at least one of the schemas in this list.
    default_ String
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs String
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description String
    The description of the data.
    enums List<String>
    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"]}
    items String
    Schema of the elements of Type.ARRAY.
    maxItems Integer
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum Double
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems Integer
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum Double
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Schemas of initial elements of Type.ARRAY.
    properties String
    Properties of Type.OBJECT.
    ref String
    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.
    requireds List<String>
    Required properties of Type.OBJECT.
    title String
    The title of the schema.
    uniqueItems Boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type string
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties string
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf string
    The instance value should be valid against at least one of the schemas in this list.
    default string
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs string
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description string
    The description of the data.
    enums string[]
    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"]}
    items string
    Schema of the elements of Type.ARRAY.
    maxItems number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum number
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable boolean
    Indicates if the value may be null.
    prefixItems string
    Schemas of initial elements of Type.ARRAY.
    properties string
    Properties of Type.OBJECT.
    ref string
    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.
    requireds string[]
    Required properties of Type.OBJECT.
    title string
    The title of the schema.
    uniqueItems boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type str
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additional_properties str
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    any_of str
    The instance value should be valid against at least one of the schemas in this list.
    default str
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs str
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description str
    The description of the data.
    enums Sequence[str]
    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"]}
    items str
    Schema of the elements of Type.ARRAY.
    max_items int
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum float
    Maximum value for Type.INTEGER and Type.NUMBER.
    min_items int
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum float
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable bool
    Indicates if the value may be null.
    prefix_items str
    Schemas of initial elements of Type.ARRAY.
    properties str
    Properties of Type.OBJECT.
    ref str
    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.
    requireds Sequence[str]
    Required properties of Type.OBJECT.
    title str
    The title of the schema.
    unique_items bool
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
    type String
    The type of the data. Possible values: STRING INTEGER NUMBER BOOLEAN OBJECT ARRAY
    additionalProperties String
    Defines the schema for additional properties allowed in an object. The value must be a valid JSON string representing the Schema object. (Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).
    anyOf String
    The instance value should be valid against at least one of the schemas in this list.
    default String
    Default value of the data. Represents a dynamically typed value which can be either null, a number, a string, a boolean, a struct, or a list of values. The provided default value must be compatible with the defined 'type' and other schema constraints.
    defs String
    A map of definitions for use by ref. Only allowed at the root of the schema.
    description String
    The description of the data.
    enums List<String>
    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"]}
    items String
    Schema of the elements of Type.ARRAY.
    maxItems Number
    Maximum number of the elements for Type.ARRAY. (int64 format)
    maximum Number
    Maximum value for Type.INTEGER and Type.NUMBER.
    minItems Number
    Minimum number of the elements for Type.ARRAY. (int64 format)
    minimum Number
    Minimum value for Type.INTEGER and Type.NUMBER.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Schemas of initial elements of Type.ARRAY.
    properties String
    Properties of Type.OBJECT.
    ref String
    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.
    requireds List<String>
    Required properties of Type.OBJECT.
    title String
    The title of the schema.
    uniqueItems Boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.

    ToolWidgetToolTextResponseConfig, ToolWidgetToolTextResponseConfigArgs

    StaticText string
    Optional. The static text response to return when type is STATIC.
    TextResponseInstruction string
    Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
    Type string
    Optional. The strategy for providing the text response. Possible values: TYPE_UNSPECIFIED NONE LLM_GENERATED STATIC Possible values are: TYPE_UNSPECIFIED, NONE, LLM_GENERATED, STATIC.
    StaticText string
    Optional. The static text response to return when type is STATIC.
    TextResponseInstruction string
    Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
    Type string
    Optional. The strategy for providing the text response. Possible values: TYPE_UNSPECIFIED NONE LLM_GENERATED STATIC Possible values are: TYPE_UNSPECIFIED, NONE, LLM_GENERATED, STATIC.
    static_text string
    Optional. The static text response to return when type is STATIC.
    text_response_instruction string
    Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
    type string
    Optional. The strategy for providing the text response. Possible values: TYPE_UNSPECIFIED NONE LLM_GENERATED STATIC Possible values are: TYPE_UNSPECIFIED, NONE, LLM_GENERATED, STATIC.
    staticText String
    Optional. The static text response to return when type is STATIC.
    textResponseInstruction String
    Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
    type String
    Optional. The strategy for providing the text response. Possible values: TYPE_UNSPECIFIED NONE LLM_GENERATED STATIC Possible values are: TYPE_UNSPECIFIED, NONE, LLM_GENERATED, STATIC.
    staticText string
    Optional. The static text response to return when type is STATIC.
    textResponseInstruction string
    Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
    type string
    Optional. The strategy for providing the text response. Possible values: TYPE_UNSPECIFIED NONE LLM_GENERATED STATIC Possible values are: TYPE_UNSPECIFIED, NONE, LLM_GENERATED, STATIC.
    static_text str
    Optional. The static text response to return when type is STATIC.
    text_response_instruction str
    Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
    type str
    Optional. The strategy for providing the text response. Possible values: TYPE_UNSPECIFIED NONE LLM_GENERATED STATIC Possible values are: TYPE_UNSPECIFIED, NONE, LLM_GENERATED, STATIC.
    staticText String
    Optional. The static text response to return when type is STATIC.
    textResponseInstruction String
    Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED.
    type String
    Optional. The strategy for providing the text response. Possible values: TYPE_UNSPECIFIED NONE LLM_GENERATED STATIC Possible values are: TYPE_UNSPECIFIED, NONE, LLM_GENERATED, STATIC.

    Import

    Tool can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/apps/{{app}}/tools/{{name}}
    • {{project}}/{{location}}/{{app}}/{{name}}
    • {{location}}/{{app}}/{{name}}

    When using the pulumi import command, Tool can be imported using one of the formats above. For example:

    $ pulumi import gcp:ces/tool:Tool default projects/{{project}}/locations/{{location}}/apps/{{app}}/tools/{{name}}
    $ pulumi import gcp:ces/tool:Tool default {{project}}/{{location}}/{{app}}/{{name}}
    $ pulumi import gcp:ces/tool:Tool default {{location}}/{{app}}/{{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Viewing docs for Google Cloud v9.32.1
    published on Wednesday, Jul 29, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial