1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. ces
  5. Tool
Google Cloud v9.6.0 published on Wednesday, Nov 26, 2025 by Pulumi
gcp logo
Google Cloud v9.6.0 published on Wednesday, Nov 26, 2025 by Pulumi

    Description

    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: {
                description: "schema description",
                type: "ARRAY",
                nullable: true,
                requireds: ["some_property"],
                enums: [
                    "VALUE_A",
                    "VALUE_B",
                ],
                ref: "#/defs/MyDefinition",
                uniqueItems: true,
                defs: JSON.stringify({
                    SimpleString: {
                        type: "STRING",
                        description: "A simple string definition",
                    },
                }),
                anyOf: JSON.stringify([{
                    type: "STRING",
                    description: "any_of option 1: string",
                }]),
                "default": JSON.stringify(false),
                prefixItems: JSON.stringify([{
                    type: "ARRAY",
                    description: "prefix item 1",
                }]),
                additionalProperties: JSON.stringify({
                    type: "BOOLEAN",
                }),
                properties: JSON.stringify({
                    name: {
                        type: "STRING",
                        description: "A name",
                    },
                }),
                items: JSON.stringify({
                    type: "ARRAY",
                    description: "An array",
                }),
            },
            response: {
                description: "schema description",
                type: "ARRAY",
                nullable: true,
                requireds: ["some_property"],
                enums: [
                    "VALUE_A",
                    "VALUE_B",
                ],
                ref: "#/defs/MyDefinition",
                uniqueItems: true,
                defs: JSON.stringify({
                    SimpleString: {
                        type: "STRING",
                        description: "A simple string definition",
                    },
                }),
                anyOf: JSON.stringify([{
                    type: "STRING",
                    description: "any_of option 1: string",
                }]),
                "default": JSON.stringify(false),
                prefixItems: JSON.stringify([{
                    type: "ARRAY",
                    description: "prefix item 1",
                }]),
                additionalProperties: JSON.stringify({
                    type: "BOOLEAN",
                }),
                properties: JSON.stringify({
                    name: {
                        type: "STRING",
                        description: "A name",
                    },
                }),
                items: JSON.stringify({
                    type: "ARRAY",
                    description: "An array",
                }),
            },
        },
    });
    
    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": {
                "description": "schema description",
                "type": "ARRAY",
                "nullable": True,
                "requireds": ["some_property"],
                "enums": [
                    "VALUE_A",
                    "VALUE_B",
                ],
                "ref": "#/defs/MyDefinition",
                "unique_items": True,
                "defs": json.dumps({
                    "SimpleString": {
                        "type": "STRING",
                        "description": "A simple string definition",
                    },
                }),
                "any_of": json.dumps([{
                    "type": "STRING",
                    "description": "any_of option 1: string",
                }]),
                "default": json.dumps(False),
                "prefix_items": json.dumps([{
                    "type": "ARRAY",
                    "description": "prefix item 1",
                }]),
                "additional_properties": json.dumps({
                    "type": "BOOLEAN",
                }),
                "properties": json.dumps({
                    "name": {
                        "type": "STRING",
                        "description": "A name",
                    },
                }),
                "items": json.dumps({
                    "type": "ARRAY",
                    "description": "An array",
                }),
            },
            "response": {
                "description": "schema description",
                "type": "ARRAY",
                "nullable": True,
                "requireds": ["some_property"],
                "enums": [
                    "VALUE_A",
                    "VALUE_B",
                ],
                "ref": "#/defs/MyDefinition",
                "unique_items": True,
                "defs": json.dumps({
                    "SimpleString": {
                        "type": "STRING",
                        "description": "A simple string definition",
                    },
                }),
                "any_of": json.dumps([{
                    "type": "STRING",
                    "description": "any_of option 1: string",
                }]),
                "default": json.dumps(False),
                "prefix_items": json.dumps([{
                    "type": "ARRAY",
                    "description": "prefix item 1",
                }]),
                "additional_properties": json.dumps({
                    "type": "BOOLEAN",
                }),
                "properties": json.dumps({
                    "name": {
                        "type": "STRING",
                        "description": "A name",
                    },
                }),
                "items": json.dumps({
                    "type": "ARRAY",
                    "description": "An array",
                }),
            },
        })
    
    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{}{
    			"SimpleString": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A simple string definition",
    			},
    		})
    		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{}{
    			map[string]interface{}{
    				"type":        "ARRAY",
    				"description": "prefix item 1",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json3 := string(tmpJSON3)
    		tmpJSON4, err := json.Marshal(map[string]interface{}{
    			"type": "BOOLEAN",
    		})
    		if err != nil {
    			return err
    		}
    		json4 := string(tmpJSON4)
    		tmpJSON5, err := json.Marshal(map[string]interface{}{
    			"name": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A name",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json5 := string(tmpJSON5)
    		tmpJSON6, err := json.Marshal(map[string]interface{}{
    			"type":        "ARRAY",
    			"description": "An array",
    		})
    		if err != nil {
    			return err
    		}
    		json6 := string(tmpJSON6)
    		tmpJSON7, err := json.Marshal(map[string]interface{}{
    			"SimpleString": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A simple string definition",
    			},
    		})
    		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{}{
    			map[string]interface{}{
    				"type":        "ARRAY",
    				"description": "prefix item 1",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json10 := string(tmpJSON10)
    		tmpJSON11, err := json.Marshal(map[string]interface{}{
    			"type": "BOOLEAN",
    		})
    		if err != nil {
    			return err
    		}
    		json11 := string(tmpJSON11)
    		tmpJSON12, err := json.Marshal(map[string]interface{}{
    			"name": map[string]interface{}{
    				"type":        "STRING",
    				"description": "A name",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json12 := string(tmpJSON12)
    		tmpJSON13, err := json.Marshal(map[string]interface{}{
    			"type":        "ARRAY",
    			"description": "An array",
    		})
    		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{
    					Description: pulumi.String("schema description"),
    					Type:        pulumi.String("ARRAY"),
    					Nullable:    pulumi.Bool(true),
    					Requireds: pulumi.StringArray{
    						pulumi.String("some_property"),
    					},
    					Enums: pulumi.StringArray{
    						pulumi.String("VALUE_A"),
    						pulumi.String("VALUE_B"),
    					},
    					Ref:                  pulumi.String("#/defs/MyDefinition"),
    					UniqueItems:          pulumi.Bool(true),
    					Defs:                 pulumi.String(json0),
    					AnyOf:                pulumi.String(json1),
    					Default:              pulumi.String(json2),
    					PrefixItems:          pulumi.String(json3),
    					AdditionalProperties: pulumi.String(json4),
    					Properties:           pulumi.String(json5),
    					Items:                pulumi.String(json6),
    				},
    				Response: &ces.ToolClientFunctionResponseArgs{
    					Description: pulumi.String("schema description"),
    					Type:        pulumi.String("ARRAY"),
    					Nullable:    pulumi.Bool(true),
    					Requireds: pulumi.StringArray{
    						pulumi.String("some_property"),
    					},
    					Enums: pulumi.StringArray{
    						pulumi.String("VALUE_A"),
    						pulumi.String("VALUE_B"),
    					},
    					Ref:                  pulumi.String("#/defs/MyDefinition"),
    					UniqueItems:          pulumi.Bool(true),
    					Defs:                 pulumi.String(json7),
    					AnyOf:                pulumi.String(json8),
    					Default:              pulumi.String(json9),
    					PrefixItems:          pulumi.String(json10),
    					AdditionalProperties: pulumi.String(json11),
    					Properties:           pulumi.String(json12),
    					Items:                pulumi.String(json13),
    				},
    			},
    		})
    		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
                {
                    Description = "schema description",
                    Type = "ARRAY",
                    Nullable = true,
                    Requireds = new[]
                    {
                        "some_property",
                    },
                    Enums = new[]
                    {
                        "VALUE_A",
                        "VALUE_B",
                    },
                    Ref = "#/defs/MyDefinition",
                    UniqueItems = true,
                    Defs = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["SimpleString"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A simple string definition",
                        },
                    }),
                    AnyOf = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "any_of option 1: string",
                        },
                    }),
                    Default = JsonSerializer.Serialize(false),
                    PrefixItems = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "ARRAY",
                            ["description"] = "prefix item 1",
                        },
                    }),
                    AdditionalProperties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "BOOLEAN",
                    }),
                    Properties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["name"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A name",
                        },
                    }),
                    Items = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "ARRAY",
                        ["description"] = "An array",
                    }),
                },
                Response = new Gcp.Ces.Inputs.ToolClientFunctionResponseArgs
                {
                    Description = "schema description",
                    Type = "ARRAY",
                    Nullable = true,
                    Requireds = new[]
                    {
                        "some_property",
                    },
                    Enums = new[]
                    {
                        "VALUE_A",
                        "VALUE_B",
                    },
                    Ref = "#/defs/MyDefinition",
                    UniqueItems = true,
                    Defs = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["SimpleString"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A simple string definition",
                        },
                    }),
                    AnyOf = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "any_of option 1: string",
                        },
                    }),
                    Default = JsonSerializer.Serialize(false),
                    PrefixItems = JsonSerializer.Serialize(new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["type"] = "ARRAY",
                            ["description"] = "prefix item 1",
                        },
                    }),
                    AdditionalProperties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "BOOLEAN",
                    }),
                    Properties = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["name"] = new Dictionary<string, object?>
                        {
                            ["type"] = "STRING",
                            ["description"] = "A name",
                        },
                    }),
                    Items = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["type"] = "ARRAY",
                        ["description"] = "An array",
                    }),
                },
            },
        });
    
    });
    
    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.List;
    import java.util.ArrayList;
    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()
                        .description("schema description")
                        .type("ARRAY")
                        .nullable(true)
                        .requireds("some_property")
                        .enums(                    
                            "VALUE_A",
                            "VALUE_B")
                        .ref("#/defs/MyDefinition")
                        .uniqueItems(true)
                        .defs(serializeJson(
                            jsonObject(
                                jsonProperty("SimpleString", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A simple string definition")
                                ))
                            )))
                        .anyOf(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "STRING"),
                                jsonProperty("description", "any_of option 1: string")
                            ))))
                        .default_(serializeJson(
                            false))
                        .prefixItems(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "prefix item 1")
                            ))))
                        .additionalProperties(serializeJson(
                            jsonObject(
                                jsonProperty("type", "BOOLEAN")
                            )))
                        .properties(serializeJson(
                            jsonObject(
                                jsonProperty("name", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A name")
                                ))
                            )))
                        .items(serializeJson(
                            jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "An array")
                            )))
                        .build())
                    .response(ToolClientFunctionResponseArgs.builder()
                        .description("schema description")
                        .type("ARRAY")
                        .nullable(true)
                        .requireds("some_property")
                        .enums(                    
                            "VALUE_A",
                            "VALUE_B")
                        .ref("#/defs/MyDefinition")
                        .uniqueItems(true)
                        .defs(serializeJson(
                            jsonObject(
                                jsonProperty("SimpleString", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A simple string definition")
                                ))
                            )))
                        .anyOf(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "STRING"),
                                jsonProperty("description", "any_of option 1: string")
                            ))))
                        .default_(serializeJson(
                            false))
                        .prefixItems(serializeJson(
                            jsonArray(jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "prefix item 1")
                            ))))
                        .additionalProperties(serializeJson(
                            jsonObject(
                                jsonProperty("type", "BOOLEAN")
                            )))
                        .properties(serializeJson(
                            jsonObject(
                                jsonProperty("name", jsonObject(
                                    jsonProperty("type", "STRING"),
                                    jsonProperty("description", "A name")
                                ))
                            )))
                        .items(serializeJson(
                            jsonObject(
                                jsonProperty("type", "ARRAY"),
                                jsonProperty("description", "An array")
                            )))
                        .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:
              description: schema description
              type: ARRAY
              nullable: true
              requireds:
                - some_property
              enums:
                - VALUE_A
                - VALUE_B
              ref: '#/defs/MyDefinition'
              uniqueItems: true
              defs:
                fn::toJSON:
                  SimpleString:
                    type: STRING
                    description: A simple string definition
              anyOf:
                fn::toJSON:
                  - type: STRING
                    description: 'any_of option 1: string'
              default:
                fn::toJSON: false
              prefixItems:
                fn::toJSON:
                  - type: ARRAY
                    description: prefix item 1
              additionalProperties:
                fn::toJSON:
                  type: BOOLEAN
              properties:
                fn::toJSON:
                  name:
                    type: STRING
                    description: A name
              items:
                fn::toJSON:
                  type: ARRAY
                  description: An array
            response:
              description: schema description
              type: ARRAY
              nullable: true
              requireds:
                - some_property
              enums:
                - VALUE_A
                - VALUE_B
              ref: '#/defs/MyDefinition'
              uniqueItems: true
              defs:
                fn::toJSON:
                  SimpleString:
                    type: STRING
                    description: A simple string definition
              anyOf:
                fn::toJSON:
                  - type: STRING
                    description: 'any_of option 1: string'
              default:
                fn::toJSON: false
              prefixItems:
                fn::toJSON:
                  - type: ARRAY
                    description: prefix item 1
              additionalProperties:
                fn::toJSON:
                  type: BOOLEAN
              properties:
                fn::toJSON:
                  name:
                    type: STRING
                    description: A name
              items:
                fn::toJSON:
                  type: ARRAY
                  description: An array
    

    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-2.5-flash",
                        temperature: 1,
                    },
                    prompt: "example-prompt",
                    disabled: false,
                },
                summarizationConfig: {
                    modelSettings: {
                        model: "gemini-2.5-flash",
                        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\")",
            },
            maxResults: 5,
        },
    });
    
    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": 1,
                        "boost_control_spec": {
                            "field_name": "example-field",
                            "attribute_type": "NUMERICAL",
                            "interpolation_type": "LINEAR",
                            "control_points": [{
                                "attribute_value": "1",
                                "boost_amount": 1,
                            }],
                        },
                    }],
                }],
            }],
            "modality_configs": [{
                "modality_type": "TEXT",
                "rewriter_config": {
                    "model_settings": {
                        "model": "gemini-2.5-flash",
                        "temperature": 1,
                    },
                    "prompt": "example-prompt",
                    "disabled": False,
                },
                "summarization_config": {
                    "model_settings": {
                        "model": "gemini-2.5-flash",
                        "temperature": 1,
                    },
                    "prompt": "example-prompt",
                    "disabled": False,
                },
                "grounding_config": {
                    "grounding_level": 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\")",
            },
            "max_results": 5,
        })
    
    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-2.5-flash"),
    								Temperature: pulumi.Float64(1),
    							},
    							Prompt:   pulumi.String("example-prompt"),
    							Disabled: pulumi.Bool(false),
    						},
    						SummarizationConfig: &ces.ToolDataStoreToolModalityConfigSummarizationConfigArgs{
    							ModelSettings: &ces.ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs{
    								Model:       pulumi.String("gemini-2.5-flash"),
    								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\")"),
    				},
    				MaxResults: pulumi.Int(5),
    			},
    		})
    		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-2.5-flash",
                                Temperature = 1,
                            },
                            Prompt = "example-prompt",
                            Disabled = false,
                        },
                        SummarizationConfig = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigSummarizationConfigArgs
                        {
                            ModelSettings = new Gcp.Ces.Inputs.ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs
                            {
                                Model = "gemini-2.5-flash",
                                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\")",
                },
                MaxResults = 5,
            },
        });
    
    });
    
    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.ToolDataStoreToolEngineSourceArgs;
    import java.util.List;
    import java.util.ArrayList;
    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-2.5-flash")
                                .temperature(1.0)
                                .build())
                            .prompt("example-prompt")
                            .disabled(false)
                            .build())
                        .summarizationConfig(ToolDataStoreToolModalityConfigSummarizationConfigArgs.builder()
                            .modelSettings(ToolDataStoreToolModalityConfigSummarizationConfigModelSettingsArgs.builder()
                                .model("gemini-2.5-flash")
                                .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())
                    .maxResults(5)
                    .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-2.5-flash
                    temperature: 1
                  prompt: example-prompt
                  disabled: false
                summarizationConfig:
                  modelSettings:
                    model: gemini-2.5-flash
                    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")'
            maxResults: 5
    

    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",
            description: "example-description",
            excludeDomains: [
                "example.com",
                "example2.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",
            "description": "example-description",
            "exclude_domains": [
                "example.com",
                "example2.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"),
    				Description: pulumi.String("example-description"),
    				ExcludeDomains: pulumi.StringArray{
    					pulumi.String("example.com"),
    					pulumi.String("example2.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",
                Description = "example-description",
                ExcludeDomains = new[]
                {
                    "example.com",
                    "example2.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.List;
    import java.util.ArrayList;
    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")
                    .description("example-description")
                    .excludeDomains(                
                        "example.com",
                        "example2.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
            description: example-description
            excludeDomains:
              - example.com
              - example2.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.List;
    import java.util.ArrayList;
    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'
    

    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,
             app: Optional[str] = None,
             location: Optional[str] = None,
             tool_id: Optional[str] = None,
             client_function: Optional[ToolClientFunctionArgs] = None,
             data_store_tool: Optional[ToolDataStoreToolArgs] = None,
             execution_type: Optional[str] = None,
             google_search_tool: Optional[ToolGoogleSearchToolArgs] = None,
             project: Optional[str] = None,
             python_function: Optional[ToolPythonFunctionArgs] = 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.
    
    

    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()
    {
        App = "string",
        Location = "string",
        ToolId = "string",
        ClientFunction = new Gcp.Ces.Inputs.ToolClientFunctionArgs
        {
            Name = "string",
            Description = "string",
            Parameters = new Gcp.Ces.Inputs.ToolClientFunctionParametersArgs
            {
                Type = "string",
                Items = "string",
                Default = "string",
                Defs = "string",
                Description = "string",
                Enums = new[]
                {
                    "string",
                },
                AdditionalProperties = "string",
                Nullable = false,
                PrefixItems = "string",
                Properties = "string",
                Ref = "string",
                Requireds = new[]
                {
                    "string",
                },
                AnyOf = "string",
                UniqueItems = false,
            },
            Response = new Gcp.Ces.Inputs.ToolClientFunctionResponseArgs
            {
                Type = "string",
                Items = "string",
                Default = "string",
                Defs = "string",
                Description = "string",
                Enums = new[]
                {
                    "string",
                },
                AdditionalProperties = "string",
                Nullable = false,
                PrefixItems = "string",
                Properties = "string",
                Ref = "string",
                Requireds = new[]
                {
                    "string",
                },
                AnyOf = "string",
                UniqueItems = false,
            },
        },
        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",
                                    },
                                },
                            },
                        },
                    },
                },
            },
            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",
            },
            MaxResults = 0,
            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",
                    },
                },
            },
        },
        ExecutionType = "string",
        GoogleSearchTool = new Gcp.Ces.Inputs.ToolGoogleSearchToolArgs
        {
            Name = "string",
            Description = "string",
            ExcludeDomains = new[]
            {
                "string",
            },
        },
        Project = "string",
        PythonFunction = new Gcp.Ces.Inputs.ToolPythonFunctionArgs
        {
            Description = "string",
            Name = "string",
            PythonCode = "string",
        },
    });
    
    example, err := ces.NewTool(ctx, "toolResource", &ces.ToolArgs{
    	App:      pulumi.String("string"),
    	Location: pulumi.String("string"),
    	ToolId:   pulumi.String("string"),
    	ClientFunction: &ces.ToolClientFunctionArgs{
    		Name:        pulumi.String("string"),
    		Description: pulumi.String("string"),
    		Parameters: &ces.ToolClientFunctionParametersArgs{
    			Type:        pulumi.String("string"),
    			Items:       pulumi.String("string"),
    			Default:     pulumi.String("string"),
    			Defs:        pulumi.String("string"),
    			Description: pulumi.String("string"),
    			Enums: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			AdditionalProperties: pulumi.String("string"),
    			Nullable:             pulumi.Bool(false),
    			PrefixItems:          pulumi.String("string"),
    			Properties:           pulumi.String("string"),
    			Ref:                  pulumi.String("string"),
    			Requireds: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			AnyOf:       pulumi.String("string"),
    			UniqueItems: pulumi.Bool(false),
    		},
    		Response: &ces.ToolClientFunctionResponseArgs{
    			Type:        pulumi.String("string"),
    			Items:       pulumi.String("string"),
    			Default:     pulumi.String("string"),
    			Defs:        pulumi.String("string"),
    			Description: pulumi.String("string"),
    			Enums: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			AdditionalProperties: pulumi.String("string"),
    			Nullable:             pulumi.Bool(false),
    			PrefixItems:          pulumi.String("string"),
    			Properties:           pulumi.String("string"),
    			Ref:                  pulumi.String("string"),
    			Requireds: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			AnyOf:       pulumi.String("string"),
    			UniqueItems: pulumi.Bool(false),
    		},
    	},
    	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"),
    								},
    							},
    						},
    					},
    				},
    			},
    		},
    		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"),
    		},
    		MaxResults: pulumi.Int(0),
    		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"),
    				},
    			},
    		},
    	},
    	ExecutionType: pulumi.String("string"),
    	GoogleSearchTool: &ces.ToolGoogleSearchToolArgs{
    		Name:        pulumi.String("string"),
    		Description: pulumi.String("string"),
    		ExcludeDomains: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	Project: pulumi.String("string"),
    	PythonFunction: &ces.ToolPythonFunctionArgs{
    		Description: pulumi.String("string"),
    		Name:        pulumi.String("string"),
    		PythonCode:  pulumi.String("string"),
    	},
    })
    
    var toolResource = new Tool("toolResource", ToolArgs.builder()
        .app("string")
        .location("string")
        .toolId("string")
        .clientFunction(ToolClientFunctionArgs.builder()
            .name("string")
            .description("string")
            .parameters(ToolClientFunctionParametersArgs.builder()
                .type("string")
                .items("string")
                .default_("string")
                .defs("string")
                .description("string")
                .enums("string")
                .additionalProperties("string")
                .nullable(false)
                .prefixItems("string")
                .properties("string")
                .ref("string")
                .requireds("string")
                .anyOf("string")
                .uniqueItems(false)
                .build())
            .response(ToolClientFunctionResponseArgs.builder()
                .type("string")
                .items("string")
                .default_("string")
                .defs("string")
                .description("string")
                .enums("string")
                .additionalProperties("string")
                .nullable(false)
                .prefixItems("string")
                .properties("string")
                .ref("string")
                .requireds("string")
                .anyOf("string")
                .uniqueItems(false)
                .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())
            .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())
            .maxResults(0)
            .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())
        .executionType("string")
        .googleSearchTool(ToolGoogleSearchToolArgs.builder()
            .name("string")
            .description("string")
            .excludeDomains("string")
            .build())
        .project("string")
        .pythonFunction(ToolPythonFunctionArgs.builder()
            .description("string")
            .name("string")
            .pythonCode("string")
            .build())
        .build());
    
    tool_resource = gcp.ces.Tool("toolResource",
        app="string",
        location="string",
        tool_id="string",
        client_function={
            "name": "string",
            "description": "string",
            "parameters": {
                "type": "string",
                "items": "string",
                "default": "string",
                "defs": "string",
                "description": "string",
                "enums": ["string"],
                "additional_properties": "string",
                "nullable": False,
                "prefix_items": "string",
                "properties": "string",
                "ref": "string",
                "requireds": ["string"],
                "any_of": "string",
                "unique_items": False,
            },
            "response": {
                "type": "string",
                "items": "string",
                "default": "string",
                "defs": "string",
                "description": "string",
                "enums": ["string"],
                "additional_properties": "string",
                "nullable": False,
                "prefix_items": "string",
                "properties": "string",
                "ref": "string",
                "requireds": ["string"],
                "any_of": "string",
                "unique_items": False,
            },
        },
        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",
                        },
                    }],
                }],
            }],
            "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",
            },
            "max_results": 0,
            "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",
                },
            }],
        },
        execution_type="string",
        google_search_tool={
            "name": "string",
            "description": "string",
            "exclude_domains": ["string"],
        },
        project="string",
        python_function={
            "description": "string",
            "name": "string",
            "python_code": "string",
        })
    
    const toolResource = new gcp.ces.Tool("toolResource", {
        app: "string",
        location: "string",
        toolId: "string",
        clientFunction: {
            name: "string",
            description: "string",
            parameters: {
                type: "string",
                items: "string",
                "default": "string",
                defs: "string",
                description: "string",
                enums: ["string"],
                additionalProperties: "string",
                nullable: false,
                prefixItems: "string",
                properties: "string",
                ref: "string",
                requireds: ["string"],
                anyOf: "string",
                uniqueItems: false,
            },
            response: {
                type: "string",
                items: "string",
                "default": "string",
                defs: "string",
                description: "string",
                enums: ["string"],
                additionalProperties: "string",
                nullable: false,
                prefixItems: "string",
                properties: "string",
                ref: "string",
                requireds: ["string"],
                anyOf: "string",
                uniqueItems: false,
            },
        },
        dataStoreTool: {
            name: "string",
            boostSpecs: [{
                dataStores: ["string"],
                specs: [{
                    conditionBoostSpecs: [{
                        condition: "string",
                        boost: 0,
                        boostControlSpec: {
                            attributeType: "string",
                            controlPoints: [{
                                attributeValue: "string",
                                boostAmount: 0,
                            }],
                            fieldName: "string",
                            interpolationType: "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",
            },
            maxResults: 0,
            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",
                },
            }],
        },
        executionType: "string",
        googleSearchTool: {
            name: "string",
            description: "string",
            excludeDomains: ["string"],
        },
        project: "string",
        pythonFunction: {
            description: "string",
            name: "string",
            pythonCode: "string",
        },
    });
    
    type: gcp:ces:Tool
    properties:
        app: string
        clientFunction:
            description: string
            name: string
            parameters:
                additionalProperties: string
                anyOf: string
                default: string
                defs: string
                description: string
                enums:
                    - string
                items: string
                nullable: false
                prefixItems: string
                properties: string
                ref: string
                requireds:
                    - string
                type: string
                uniqueItems: false
            response:
                additionalProperties: string
                anyOf: string
                default: string
                defs: string
                description: string
                enums:
                    - string
                items: string
                nullable: false
                prefixItems: string
                properties: string
                ref: string
                requireds:
                    - 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
            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
            maxResults: 0
            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
        executionType: string
        googleSearchTool:
            description: string
            excludeDomains:
                - string
            name: string
        location: string
        project: string
        pythonFunction:
            description: string
            name: string
            pythonCode: string
        toolId: 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.
    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.
    ExecutionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    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.
    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.
    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.
    ExecutionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    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.
    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.
    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.
    executionType String
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    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.
    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.
    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.
    executionType string
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    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.
    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.
    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.
    execution_type str
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    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.
    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.
    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.
    executionType String
    Possible values: SYNCHRONOUS ASYNCHRONOUS
    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.

    Outputs

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

    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.
    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.
    SystemTools List<ToolSystemTool>
    The system tool. Structure is documented below.
    UpdateTime string
    Timestamp when the tool was last updated.
    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.
    Name string
    (Output) The name of the system tool.
    OpenApiTools []ToolOpenApiTool
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    SystemTools []ToolSystemTool
    The system tool. Structure is documented below.
    UpdateTime string
    Timestamp when the tool was last updated.
    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.
    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.
    systemTools List<ToolSystemTool>
    The system tool. Structure is documented below.
    updateTime String
    Timestamp when the tool was last updated.
    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.
    name string
    (Output) The name of the system tool.
    openApiTools ToolOpenApiTool[]
    A remote API tool defined by an OpenAPI schema. Structure is documented below.
    systemTools ToolSystemTool[]
    The system tool. Structure is documented below.
    updateTime string
    Timestamp when the tool was last updated.
    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.
    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.
    system_tools Sequence[ToolSystemTool]
    The system tool. Structure is documented below.
    update_time str
    Timestamp when the tool was last updated.
    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.
    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.
    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,
            app: Optional[str] = None,
            client_function: Optional[ToolClientFunctionArgs] = None,
            create_time: Optional[str] = None,
            data_store_tool: Optional[ToolDataStoreToolArgs] = None,
            display_name: Optional[str] = None,
            etag: Optional[str] = None,
            execution_type: Optional[str] = None,
            generated_summary: Optional[str] = None,
            google_search_tool: Optional[ToolGoogleSearchToolArgs] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            open_api_tools: Optional[Sequence[ToolOpenApiToolArgs]] = None,
            project: Optional[str] = None,
            python_function: Optional[ToolPythonFunctionArgs] = None,
            system_tools: Optional[Sequence[ToolSystemToolArgs]] = None,
            tool_id: Optional[str] = None,
            update_time: Optional[str] = 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}
    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:
    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.
    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.
    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
    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.
    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.
    SystemTools List<ToolSystemTool>
    The system tool. 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.
    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.
    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.
    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
    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.
    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.
    SystemTools []ToolSystemToolArgs
    The system tool. 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.
    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.
    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.
    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
    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.
    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.
    systemTools List<ToolSystemTool>
    The system tool. 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.
    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.
    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.
    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
    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.
    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.
    systemTools ToolSystemTool[]
    The system tool. 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.
    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.
    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.
    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
    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.
    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.
    system_tools Sequence[ToolSystemToolArgs]
    The system tool. 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.
    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.
    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.
    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
    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.
    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.
    systemTools List<Property Map>
    The system tool. 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.

    Supporting Types

    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 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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    Default string
    Optional. 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.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    Default string
    Optional. 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.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default_ String
    Optional. 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.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default string
    Optional. 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.
    nullable boolean
    Indicates if the value may be null.
    prefixItems string
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default str
    Optional. 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.
    nullable bool
    Indicates if the value may be null.
    prefix_items str
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default String
    Optional. 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.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    Default string
    Optional. 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.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    Default string
    Optional. 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.
    Nullable bool
    Indicates if the value may be null.
    PrefixItems string
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default_ String
    Optional. 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.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default string
    Optional. 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.
    nullable boolean
    Indicates if the value may be null.
    prefixItems string
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default str
    Optional. 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.
    nullable bool
    Indicates if the value may be null.
    prefix_items str
    Optional. 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.
    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
    Optional. 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
    Optional. The instance value should be valid against at least one of the schemas in this list.
    default String
    Optional. 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.
    nullable Boolean
    Indicates if the value may be null.
    prefixItems String
    Optional. 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.
    uniqueItems Boolean
    Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.

    ToolDataStoreTool, ToolDataStoreToolArgs

    Name string
    The data store tool name.
    BoostSpecs List<ToolDataStoreToolBoostSpec>
    Boost specification to boost certain documents. 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.
    MaxResults int
    Number of search results to return per query. The default value is 10. The maximum allowed value is 10.
    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.
    Description string
    The tool description.
    EngineSource ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    MaxResults int
    Number of search results to return per query. The default value is 10. The maximum allowed value is 10.
    ModalityConfigs []ToolDataStoreToolModalityConfig
    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.
    description String
    The tool description.
    engineSource ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    maxResults Integer
    Number of search results to return per query. The default value is 10. The maximum allowed value is 10.
    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.
    description string
    The tool description.
    engineSource ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    maxResults number
    Number of search results to return per query. The default value is 10. The maximum allowed value is 10.
    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.
    description str
    The tool description.
    engine_source ToolDataStoreToolEngineSource
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    max_results int
    Number of search results to return per query. The default value is 10. The maximum allowed value is 10.
    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.
    description String
    The tool description.
    engineSource Property Map
    Configuration for searching within an Engine, potentially targeting specific DataStores. Structure is documented below.
    maxResults Number
    Number of search results to return per query. The default value is 10. The maximum allowed value is 10.
    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.
    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.
    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 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. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (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 interpolation_type 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. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (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 interpolation_type 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. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (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 interpolation_type 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. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (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 interpolation_type 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. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (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 interpolation_type 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. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (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 interpolation_type 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 attribute_value 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 attribute_value 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 attribute_value 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 attribute_value 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 attribute_value 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 attribute_value evaluates to the value specified above.

    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}
    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
    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

    <a name=<span pulumi-lang-nodejs=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-dotnet=""NestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-go=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-python=""nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config"" pulumi-lang-yaml=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-java=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"">"nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config">The connector_config 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

    <a name=<span pulumi-lang-nodejs=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-dotnet=""NestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-go=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-python=""nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config"" pulumi-lang-yaml=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-java=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"">"nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config">The connector_config 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

    <a name=<span pulumi-lang-nodejs=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-dotnet=""NestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-go=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-python=""nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config"" pulumi-lang-yaml=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-java=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"">"nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config">The connector_config 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

    <a name=<span pulumi-lang-nodejs=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-dotnet=""NestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-go=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-python=""nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config"" pulumi-lang-yaml=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-java=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"">"nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config">The connector_config 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

    <a name=<span pulumi-lang-nodejs=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-dotnet=""NestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-go=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-python=""nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config"" pulumi-lang-yaml=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-java=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"">"nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config">The connector_config 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

    <a name=<span pulumi-lang-nodejs=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-dotnet=""NestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-go=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-python=""nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config"" pulumi-lang-yaml=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"" pulumi-lang-java=""nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreSourcesDataStoreConnectorConfig"">"nested_data_store_tool_engine_source_data_store_sources_data_store_sources_data_store_connector_config">The connector_config 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.
    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.
    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 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.
    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 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 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 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.

    ToolGoogleSearchTool, ToolGoogleSearchToolArgs

    Name string
    The name of the tool.
    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.
    Name string
    The name of the tool.
    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.
    name String
    The name of the tool.
    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.
    name string
    The name of the tool.
    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.
    name str
    The name of the tool.
    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.
    name String
    The name of the tool.
    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.

    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 server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.
    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 server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.
    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 server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.
    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 server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.
    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 server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.
    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 server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.

    ToolOpenApiToolApiAuthentication, ToolOpenApiToolApiAuthenticationArgs

    ApiKeyConfigs List<ToolOpenApiToolApiAuthenticationApiKeyConfig>
    (Output) Configurations for authentication with API key. 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.
    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.
    apiKeyConfigs List<ToolOpenApiToolApiAuthenticationApiKeyConfig>
    (Output) Configurations for authentication with API key. 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.
    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.
    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.
    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
    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

    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.
    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.
    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 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>
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    CaCerts []ToolOpenApiToolTlsConfigCaCert
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<ToolOpenApiToolTlsConfigCaCert>
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts ToolOpenApiToolTlsConfigCaCert[]
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    ca_certs Sequence[ToolOpenApiToolTlsConfigCaCert]
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<Property Map>
    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.
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    The Python code to execute for the tool.

    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 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.

    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
    Google Cloud v9.6.0 published on Wednesday, Nov 26, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate