published on Monday, Aug 10, 2026 by Pulumi
published on Monday, Aug 10, 2026 by Pulumi
ReasoningEngine provides a customizable runtime for models to determine which actions to take and in which order.
To get more information about ReasoningEngine, see:
Example Usage
Vertex Ai Reasoning Engine Source Based Deployment
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as std from "@pulumi/std";
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "reasoning-engine",
description: "A basic reasoning engine",
region: "us-central1",
spec: {
sourceCodeSpec: {
inlineSource: {
sourceArchive: std.filebase64({
input: "./test-fixtures/source.tar.gz",
}).then(invoke => invoke.result),
},
pythonSpec: {
entrypointModule: "simple_agent",
entrypointObject: "fixed_name_generator",
version: "3.14",
},
},
},
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="reasoning-engine",
description="A basic reasoning engine",
region="us-central1",
spec={
"source_code_spec": {
"inline_source": {
"source_archive": std.filebase64(input="./test-fixtures/source.tar.gz").result,
},
"python_spec": {
"entrypoint_module": "simple_agent",
"entrypoint_object": "fixed_name_generator",
"version": "3.14",
},
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
invokeFilebase64, err := std.Filebase64(ctx, &std.Filebase64Args{
Input: "./test-fixtures/source.tar.gz",
}, nil)
if err != nil {
return err
}
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("reasoning-engine"),
Description: pulumi.String("A basic reasoning engine"),
Region: pulumi.String("us-central1"),
Spec: &vertex.AiReasoningEngineSpecArgs{
SourceCodeSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecArgs{
InlineSource: &vertex.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs{
SourceArchive: pulumi.String(invokeFilebase64.Result),
},
PythonSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs{
EntrypointModule: pulumi.String("simple_agent"),
EntrypointObject: pulumi.String("fixed_name_generator"),
Version: pulumi.String("3.14"),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "reasoning-engine",
Description = "A basic reasoning engine",
Region = "us-central1",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
SourceCodeSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecArgs
{
InlineSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs
{
SourceArchive = Std.Filebase64.Invoke(new()
{
Input = "./test-fixtures/source.tar.gz",
}).Apply(invoke => invoke.Result),
},
PythonSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs
{
EntrypointModule = "simple_agent",
EntrypointObject = "fixed_name_generator",
Version = "3.14",
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.Filebase64Args;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("reasoning-engine")
.description("A basic reasoning engine")
.region("us-central1")
.spec(AiReasoningEngineSpecArgs.builder()
.sourceCodeSpec(AiReasoningEngineSpecSourceCodeSpecArgs.builder()
.inlineSource(AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs.builder()
.sourceArchive(StdFunctions.filebase64(Filebase64Args.builder()
.input("./test-fixtures/source.tar.gz")
.build()).result())
.build())
.pythonSpec(AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs.builder()
.entrypointModule("simple_agent")
.entrypointObject("fixed_name_generator")
.version("3.14")
.build())
.build())
.build())
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: reasoning-engine
description: A basic reasoning engine
region: us-central1
spec:
sourceCodeSpec:
inlineSource:
sourceArchive:
fn::invoke:
function: std:filebase64
arguments:
input: ./test-fixtures/source.tar.gz
return: result
pythonSpec:
entrypointModule: simple_agent
entrypointObject: fixed_name_generator
version: '3.14'
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
std = {
source = "pulumi/std"
}
}
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
display_name = "reasoning-engine"
description = "A basic reasoning engine"
region = "us-central1"
spec = {
source_code_spec = {
inline_source = {
source_archive = filebase64("./test-fixtures/source.tar.gz")
}
python_spec = {
entrypoint_module = "simple_agent"
entrypoint_object = "fixed_name_generator"
version = "3.14"
}
}
}
}
Vertex Ai Reasoning Engine Developer Connect Source
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const project = gcp.organizations.getProject({});
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "reasoning-engine",
description: "A basic reasoning engine",
region: "us-central1",
spec: {
sourceCodeSpec: {
developerConnectSource: {
config: {
gitRepositoryLink: project.then(project => `projects/${project.projectId}/locations/us-central1/connections/tpg-test-bot-github/gitRepositoryLinks/tpg-test-vertex-reasoning`),
dir: "source",
revision: "main",
},
},
pythonSpec: {
version: "3.14",
entrypointModule: "simple_agent",
entrypointObject: "fixed_name_generator",
},
},
},
});
import pulumi
import pulumi_gcp as gcp
project = gcp.organizations.get_project()
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="reasoning-engine",
description="A basic reasoning engine",
region="us-central1",
spec={
"source_code_spec": {
"developer_connect_source": {
"config": {
"git_repository_link": f"projects/{project.project_id}/locations/us-central1/connections/tpg-test-bot-github/gitRepositoryLinks/tpg-test-vertex-reasoning",
"dir": "source",
"revision": "main",
},
},
"python_spec": {
"version": "3.14",
"entrypoint_module": "simple_agent",
"entrypoint_object": "fixed_name_generator",
},
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("reasoning-engine"),
Description: pulumi.String("A basic reasoning engine"),
Region: pulumi.String("us-central1"),
Spec: &vertex.AiReasoningEngineSpecArgs{
SourceCodeSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecArgs{
DeveloperConnectSource: &vertex.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs{
Config: &vertex.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs{
GitRepositoryLink: pulumi.Sprintf("projects/%v/locations/us-central1/connections/tpg-test-bot-github/gitRepositoryLinks/tpg-test-vertex-reasoning", project.ProjectId),
Dir: pulumi.String("source"),
Revision: pulumi.String("main"),
},
},
PythonSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs{
Version: pulumi.String("3.14"),
EntrypointModule: pulumi.String("simple_agent"),
EntrypointObject: pulumi.String("fixed_name_generator"),
},
},
},
})
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 project = Gcp.Organizations.GetProject.Invoke();
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "reasoning-engine",
Description = "A basic reasoning engine",
Region = "us-central1",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
SourceCodeSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecArgs
{
DeveloperConnectSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs
{
Config = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs
{
GitRepositoryLink = $"projects/{project.Apply(getProjectResult => getProjectResult.ProjectId)}/locations/us-central1/connections/tpg-test-bot-github/gitRepositoryLinks/tpg-test-vertex-reasoning",
Dir = "source",
Revision = "main",
},
},
PythonSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs
{
Version = "3.14",
EntrypointModule = "simple_agent",
EntrypointObject = "fixed_name_generator",
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("reasoning-engine")
.description("A basic reasoning engine")
.region("us-central1")
.spec(AiReasoningEngineSpecArgs.builder()
.sourceCodeSpec(AiReasoningEngineSpecSourceCodeSpecArgs.builder()
.developerConnectSource(AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs.builder()
.config(AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs.builder()
.gitRepositoryLink(String.format("projects/%s/locations/us-central1/connections/tpg-test-bot-github/gitRepositoryLinks/tpg-test-vertex-reasoning", project.projectId()))
.dir("source")
.revision("main")
.build())
.build())
.pythonSpec(AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs.builder()
.version("3.14")
.entrypointModule("simple_agent")
.entrypointObject("fixed_name_generator")
.build())
.build())
.build())
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: reasoning-engine
description: A basic reasoning engine
region: us-central1
spec:
sourceCodeSpec:
developerConnectSource:
config:
gitRepositoryLink: projects/${project.projectId}/locations/us-central1/connections/tpg-test-bot-github/gitRepositoryLinks/tpg-test-vertex-reasoning
dir: source
revision: main
pythonSpec:
version: '3.14'
entrypointModule: simple_agent
entrypointObject: fixed_name_generator
variables:
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
data "gcp_organizations_getproject" "project" {
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
display_name = "reasoning-engine"
description = "A basic reasoning engine"
region = "us-central1"
spec = {
source_code_spec = {
developer_connect_source = {
config = {
git_repository_link ="projects/${data.gcp_organizations_getproject.project.project_id}/locations/us-central1/connections/tpg-test-bot-github/gitRepositoryLinks/tpg-test-vertex-reasoning"
dir = "source"
revision = "main"
}
}
python_spec = {
version = "3.14"
entrypoint_module = "simple_agent"
entrypoint_object = "fixed_name_generator"
}
}
}
}
Vertex Ai Reasoning Engine Image Spec
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as std from "@pulumi/std";
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "reasoning-engine",
description: "Deployed with BYOC Dockerfile through Terraform",
region: "us-central1",
spec: {
sourceCodeSpec: {
inlineSource: {
sourceArchive: std.filebase64({
input: "./test-fixtures/agent_src.tar.gz",
}).then(invoke => invoke.result),
},
imageSpec: {
buildArgs: {},
},
},
},
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="reasoning-engine",
description="Deployed with BYOC Dockerfile through Terraform",
region="us-central1",
spec={
"source_code_spec": {
"inline_source": {
"source_archive": std.filebase64(input="./test-fixtures/agent_src.tar.gz").result,
},
"image_spec": {
"build_args": {},
},
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
invokeFilebase64, err := std.Filebase64(ctx, &std.Filebase64Args{
Input: "./test-fixtures/agent_src.tar.gz",
}, nil)
if err != nil {
return err
}
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("reasoning-engine"),
Description: pulumi.String("Deployed with BYOC Dockerfile through Terraform"),
Region: pulumi.String("us-central1"),
Spec: &vertex.AiReasoningEngineSpecArgs{
SourceCodeSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecArgs{
InlineSource: &vertex.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs{
SourceArchive: pulumi.String(invokeFilebase64.Result),
},
ImageSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecImageSpecArgs{
BuildArgs: pulumi.StringMap{},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "reasoning-engine",
Description = "Deployed with BYOC Dockerfile through Terraform",
Region = "us-central1",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
SourceCodeSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecArgs
{
InlineSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs
{
SourceArchive = Std.Filebase64.Invoke(new()
{
Input = "./test-fixtures/agent_src.tar.gz",
}).Apply(invoke => invoke.Result),
},
ImageSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecImageSpecArgs
{
BuildArgs = null,
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecImageSpecArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.Filebase64Args;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("reasoning-engine")
.description("Deployed with BYOC Dockerfile through Terraform")
.region("us-central1")
.spec(AiReasoningEngineSpecArgs.builder()
.sourceCodeSpec(AiReasoningEngineSpecSourceCodeSpecArgs.builder()
.inlineSource(AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs.builder()
.sourceArchive(StdFunctions.filebase64(Filebase64Args.builder()
.input("./test-fixtures/agent_src.tar.gz")
.build()).result())
.build())
.imageSpec(AiReasoningEngineSpecSourceCodeSpecImageSpecArgs.builder()
.buildArgs(Map.ofEntries(
))
.build())
.build())
.build())
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: reasoning-engine
description: Deployed with BYOC Dockerfile through Terraform
region: us-central1
spec:
sourceCodeSpec:
inlineSource:
sourceArchive:
fn::invoke:
function: std:filebase64
arguments:
input: ./test-fixtures/agent_src.tar.gz
return: result
imageSpec:
buildArgs: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
std = {
source = "pulumi/std"
}
}
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
display_name = "reasoning-engine"
description = "Deployed with BYOC Dockerfile through Terraform"
region = "us-central1"
spec = {
source_code_spec = {
inline_source = {
source_archive = filebase64("./test-fixtures/agent_src.tar.gz")
}
image_spec = {
build_args = {}
}
}
}
}
Vertex Ai Reasoning Engine Byoc
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as std from "@pulumi/std";
const project = gcp.organizations.getProject({});
const vertexArReader = new gcp.projects.IAMMember("vertex_ar_reader", {
project: project.then(project => project.projectId),
role: "roles/artifactregistry.reader",
member: project.then(project => `serviceAccount:service-${project.number}@gcp-sa-aiplatform-re.iam.gserviceaccount.com`),
});
// Provision and retrieve the tenant service agent through another agent
const tenantMdsAiReasoningEngine = new gcp.vertex.AiReasoningEngine("tenant_mds", {
displayName: "reasoning-engine-mds",
region: "us-central1",
spec: {
sourceCodeSpec: {
inlineSource: {
sourceArchive: std.filebase64({
input: "./test-fixtures/mds_agent_src.tar.gz",
}).then(invoke => invoke.result),
},
pythonSpec: {
entrypointModule: "metadata_agent",
entrypointObject: "root_agent",
},
},
},
});
const tenantMds = gcp.vertex.getAiReasoningEngineQueryOutput({
region: "us-central1",
reasoningEngineId: tenantMdsAiReasoningEngine.name,
});
const tenantArReader = new gcp.projects.IAMMember("tenant_ar_reader", {
project: project.then(project => project.projectId),
role: "roles/artifactregistry.reader",
member: std.jsondecodeOutput({
input: tenantMds.output,
}).apply(invoke => `serviceAccount:${invoke.result?.output}`),
});
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "reasoning-engine",
description: "Deployed with BYOC through Terraform",
region: "us-central1",
spec: {
containerSpec: {
imageUri: project.then(project => `us-central1-docker.pkg.dev/${project.projectId}/vertex-byoc/byoc-agent:latest`),
},
},
}, {
dependsOn: [
vertexArReader,
tenantArReader,
],
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std
project = gcp.organizations.get_project()
vertex_ar_reader = gcp.projects.IAMMember("vertex_ar_reader",
project=project.project_id,
role="roles/artifactregistry.reader",
member=f"serviceAccount:service-{project.number}@gcp-sa-aiplatform-re.iam.gserviceaccount.com")
# Provision and retrieve the tenant service agent through another agent
tenant_mds_ai_reasoning_engine = gcp.vertex.AiReasoningEngine("tenant_mds",
display_name="reasoning-engine-mds",
region="us-central1",
spec={
"source_code_spec": {
"inline_source": {
"source_archive": std.filebase64(input="./test-fixtures/mds_agent_src.tar.gz").result,
},
"python_spec": {
"entrypoint_module": "metadata_agent",
"entrypoint_object": "root_agent",
},
},
})
tenant_mds = gcp.vertex.get_ai_reasoning_engine_query_output(region="us-central1",
reasoning_engine_id=tenant_mds_ai_reasoning_engine.name)
tenant_ar_reader = gcp.projects.IAMMember("tenant_ar_reader",
project=project.project_id,
role="roles/artifactregistry.reader",
member=std.jsondecode_output(input=tenant_mds.output).apply(lambda invoke: f"serviceAccount:{invoke.result['output']}"))
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="reasoning-engine",
description="Deployed with BYOC through Terraform",
region="us-central1",
spec={
"container_spec": {
"image_uri": f"us-central1-docker.pkg.dev/{project.project_id}/vertex-byoc/byoc-agent:latest",
},
},
opts = pulumi.ResourceOptions(depends_on=[
vertex_ar_reader,
tenant_ar_reader,
]))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
vertexArReader, err := projects.NewIAMMember(ctx, "vertex_ar_reader", &projects.IAMMemberArgs{
Project: pulumi.String(project.ProjectId),
Role: pulumi.String("roles/artifactregistry.reader"),
Member: pulumi.Sprintf("serviceAccount:service-%v@gcp-sa-aiplatform-re.iam.gserviceaccount.com", project.Number),
})
if err != nil {
return err
}
invokeFilebase64, err := std.Filebase64(ctx, &std.Filebase64Args{
Input: "./test-fixtures/mds_agent_src.tar.gz",
}, nil)
if err != nil {
return err
}
// Provision and retrieve the tenant service agent through another agent
tenantMdsAiReasoningEngine, err := vertex.NewAiReasoningEngine(ctx, "tenant_mds", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("reasoning-engine-mds"),
Region: pulumi.String("us-central1"),
Spec: &vertex.AiReasoningEngineSpecArgs{
SourceCodeSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecArgs{
InlineSource: &vertex.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs{
SourceArchive: pulumi.String(invokeFilebase64.Result),
},
PythonSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs{
EntrypointModule: pulumi.String("metadata_agent"),
EntrypointObject: pulumi.String("root_agent"),
},
},
},
})
if err != nil {
return err
}
tenantMds := vertex.GetAiReasoningEngineQueryOutput(ctx, vertex.GetAiReasoningEngineQueryOutputArgs{
Region: pulumi.String("us-central1"),
ReasoningEngineId: tenantMdsAiReasoningEngine.Name,
}, nil)
tenantArReader, err := projects.NewIAMMember(ctx, "tenant_ar_reader", &projects.IAMMemberArgs{
Project: pulumi.String(project.ProjectId),
Role: pulumi.String("roles/artifactregistry.reader"),
Member: std.JsondecodeOutput(ctx, std.JsondecodeOutputArgs{
Input: tenantMds.Output(),
}, nil).ApplyT(func(invoke std.JsondecodeResult) (string, error) {
return fmt.Sprintf("serviceAccount:%v", invoke.Result.Output), nil
}).(pulumi.StringOutput),
})
if err != nil {
return err
}
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("reasoning-engine"),
Description: pulumi.String("Deployed with BYOC through Terraform"),
Region: pulumi.String("us-central1"),
Spec: &vertex.AiReasoningEngineSpecArgs{
ContainerSpec: &vertex.AiReasoningEngineSpecContainerSpecArgs{
ImageUri: pulumi.Sprintf("us-central1-docker.pkg.dev/%v/vertex-byoc/byoc-agent:latest", project.ProjectId),
},
},
}, pulumi.DependsOn([]pulumi.Resource{
vertexArReader,
tenantArReader,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var project = Gcp.Organizations.GetProject.Invoke();
var vertexArReader = new Gcp.Projects.IAMMember("vertex_ar_reader", new()
{
Project = project.Apply(getProjectResult => getProjectResult.ProjectId),
Role = "roles/artifactregistry.reader",
Member = $"serviceAccount:service-{project.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-aiplatform-re.iam.gserviceaccount.com",
});
// Provision and retrieve the tenant service agent through another agent
var tenantMdsAiReasoningEngine = new Gcp.Vertex.AiReasoningEngine("tenant_mds", new()
{
DisplayName = "reasoning-engine-mds",
Region = "us-central1",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
SourceCodeSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecArgs
{
InlineSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs
{
SourceArchive = Std.Filebase64.Invoke(new()
{
Input = "./test-fixtures/mds_agent_src.tar.gz",
}).Apply(invoke => invoke.Result),
},
PythonSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs
{
EntrypointModule = "metadata_agent",
EntrypointObject = "root_agent",
},
},
},
});
var tenantMds = Gcp.Vertex.GetAiReasoningEngineQuery.Invoke(new()
{
Region = "us-central1",
ReasoningEngineId = tenantMdsAiReasoningEngine.Name,
});
var tenantArReader = new Gcp.Projects.IAMMember("tenant_ar_reader", new()
{
Project = project.Apply(getProjectResult => getProjectResult.ProjectId),
Role = "roles/artifactregistry.reader",
Member = Std.Jsondecode.Invoke(new()
{
Input = tenantMds.Apply(getAiReasoningEngineQueryResult => getAiReasoningEngineQueryResult.Output),
}).Apply(invoke => $"serviceAccount:{invoke.Result?.Output}"),
});
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "reasoning-engine",
Description = "Deployed with BYOC through Terraform",
Region = "us-central1",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
ContainerSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecContainerSpecArgs
{
ImageUri = $"us-central1-docker.pkg.dev/{project.Apply(getProjectResult => getProjectResult.ProjectId)}/vertex-byoc/byoc-agent:latest",
},
},
}, new CustomResourceOptions
{
DependsOn =
{
vertexArReader,
tenantArReader,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.projects.IAMMember;
import com.pulumi.gcp.projects.IAMMemberArgs;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.Filebase64Args;
import com.pulumi.gcp.vertex.VertexFunctions;
import com.pulumi.gcp.vertex.inputs.GetAiReasoningEngineQueryArgs;
import com.pulumi.std.inputs.JsondecodeArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecContainerSpecArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var vertexArReader = new IAMMember("vertexArReader", IAMMemberArgs.builder()
.project(project.projectId())
.role("roles/artifactregistry.reader")
.member(String.format("serviceAccount:service-%s@gcp-sa-aiplatform-re.iam.gserviceaccount.com", project.number()))
.build());
// Provision and retrieve the tenant service agent through another agent
var tenantMdsAiReasoningEngine = new AiReasoningEngine("tenantMdsAiReasoningEngine", AiReasoningEngineArgs.builder()
.displayName("reasoning-engine-mds")
.region("us-central1")
.spec(AiReasoningEngineSpecArgs.builder()
.sourceCodeSpec(AiReasoningEngineSpecSourceCodeSpecArgs.builder()
.inlineSource(AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs.builder()
.sourceArchive(StdFunctions.filebase64(Filebase64Args.builder()
.input("./test-fixtures/mds_agent_src.tar.gz")
.build()).result())
.build())
.pythonSpec(AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs.builder()
.entrypointModule("metadata_agent")
.entrypointObject("root_agent")
.build())
.build())
.build())
.build());
final var tenantMds = VertexFunctions.getAiReasoningEngineQuery(GetAiReasoningEngineQueryArgs.builder()
.region("us-central1")
.reasoningEngineId(tenantMdsAiReasoningEngine.name())
.build());
var tenantArReader = new IAMMember("tenantArReader", IAMMemberArgs.builder()
.project(project.projectId())
.role("roles/artifactregistry.reader")
.member(StdFunctions.jsondecode(JsondecodeArgs.builder()
.input(tenantMds.applyValue(_tenantMds -> _tenantMds.output()))
.build()).applyValue(_invoke -> String.format("serviceAccount:%s", _invoke.result().output())))
.build());
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("reasoning-engine")
.description("Deployed with BYOC through Terraform")
.region("us-central1")
.spec(AiReasoningEngineSpecArgs.builder()
.containerSpec(AiReasoningEngineSpecContainerSpecArgs.builder()
.imageUri(String.format("us-central1-docker.pkg.dev/%s/vertex-byoc/byoc-agent:latest", project.projectId()))
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(
vertexArReader,
tenantArReader)
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: reasoning-engine
description: Deployed with BYOC through Terraform
region: us-central1
spec:
containerSpec:
imageUri: us-central1-docker.pkg.dev/${project.projectId}/vertex-byoc/byoc-agent:latest
options:
dependsOn:
- ${vertexArReader}
- ${tenantArReader}
# Provision and retrieve the tenant service agent through another agent
tenantMdsAiReasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: tenant_mds
properties:
displayName: reasoning-engine-mds
region: us-central1
spec:
sourceCodeSpec:
inlineSource:
sourceArchive:
fn::invoke:
function: std:filebase64
arguments:
input: ./test-fixtures/mds_agent_src.tar.gz
return: result
pythonSpec:
entrypointModule: metadata_agent
entrypointObject: root_agent
vertexArReader:
type: gcp:projects:IAMMember
name: vertex_ar_reader
properties:
project: ${project.projectId}
role: roles/artifactregistry.reader
member: serviceAccount:service-${project.number}@gcp-sa-aiplatform-re.iam.gserviceaccount.com
tenantArReader:
type: gcp:projects:IAMMember
name: tenant_ar_reader
properties:
project: ${project.projectId}
role: roles/artifactregistry.reader
member:
fn::join:
- ""
- - 'serviceAccount:'
- fn::invoke:
function: std:jsondecode
arguments:
input: ${tenantMds.output}
return: result.output
variables:
tenantMds:
fn::invoke:
function: gcp:vertex:getAiReasoningEngineQuery
arguments:
region: us-central1
reasoningEngineId: ${tenantMdsAiReasoningEngine.name}
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
std = {
source = "pulumi/std"
}
}
}
data "gcp_vertex_getaireasoningenginequery" "tenantMds" {
region = "us-central1"
reasoning_engine_id = gcp_vertex_aireasoningengine.tenant_mds.name
}
data "gcp_organizations_getproject" "project" {
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
depends_on = [gcp_projects_iammember.vertex_ar_reader, gcp_projects_iammember.tenant_ar_reader]
display_name = "reasoning-engine"
description = "Deployed with BYOC through Terraform"
region = "us-central1"
spec = {
container_spec = {
image_uri ="us-central1-docker.pkg.dev/${data.gcp_organizations_getproject.project.project_id}/vertex-byoc/byoc-agent:latest"
}
}
}
# Provision and retrieve the tenant service agent through another agent
resource "gcp_vertex_aireasoningengine" "tenant_mds" {
display_name = "reasoning-engine-mds"
region = "us-central1"
spec = {
source_code_spec = {
inline_source = {
source_archive = filebase64("./test-fixtures/mds_agent_src.tar.gz")
}
python_spec = {
entrypoint_module = "metadata_agent"
entrypoint_object = "root_agent"
}
}
}
}
resource "gcp_projects_iammember" "vertex_ar_reader" {
project = data.gcp_organizations_getproject.project.project_id
role = "roles/artifactregistry.reader"
member ="serviceAccount:service-${data.gcp_organizations_getproject.project.number}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"
}
resource "gcp_projects_iammember" "tenant_ar_reader" {
project = data.gcp_organizations_getproject.project.project_id
role = "roles/artifactregistry.reader"
member ="serviceAccount:${jsondecode(data.gcp_vertex_getaireasoningenginequery.tenantMds.output).output}"
}
Vertex Ai Reasoning Engine Psc Interface
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as time from "@pulumiverse/time";
const bucket = new gcp.storage.Bucket("bucket", {
name: "reasoning-engine",
location: "us-central1",
uniformBucketLevelAccess: true,
forceDestroy: true,
});
const bucketObjRequirementsTxt = new gcp.storage.BucketObject("bucket_obj_requirements_txt", {
name: "requirements.txt",
bucket: bucket.id,
source: new pulumi.asset.FileAsset("./test-fixtures/requirements_adk.txt"),
});
const bucketObjPickle = new gcp.storage.BucketObject("bucket_obj_pickle", {
name: "code.pkl",
bucket: bucket.id,
source: new pulumi.asset.FileAsset("./test-fixtures/pickle_adk.pkl"),
});
const bucketObjDependenciesTarGz = new gcp.storage.BucketObject("bucket_obj_dependencies_tar_gz", {
name: "dependencies.tar.gz",
bucket: bucket.id,
source: new pulumi.asset.FileAsset("./test-fixtures/dependencies_adk.tar.gz"),
});
const network = new gcp.compute.Network("network", {
name: "network",
autoCreateSubnetworks: false,
});
const subnetwork = new gcp.compute.Subnetwork("subnetwork", {
name: "subnetwork",
region: "us-central1",
ipCidrRange: "10.0.0.0/16",
network: network.id,
});
const networkAttachment = new gcp.compute.NetworkAttachment("network_attachment", {
name: "network-attachment",
region: "us-central1",
connectionPreference: "ACCEPT_MANUAL",
subnetworks: [subnetwork.id],
});
// Destroy network attachment 35 minutes after reasoning engine is deleted.
// It guarantees that the network attachment has no more active PSC interfaces.
const wait35Minutes = new time.Sleep("wait_35_minutes", {destroyDuration: "35m"}, {
dependsOn: [networkAttachment],
});
const project = gcp.organizations.getProject({});
// When PSC-I is configured, Agent deletion will fail,
// although the agent will be deleted.
// Bug at https://github.com/hashicorp/terraform-provider-google/issues/25637
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "reasoning-engine",
description: "A basic reasoning engine",
region: "us-central1",
spec: {
agentFramework: "google-adk",
packageSpec: {
pythonVersion: "3.11",
dependencyFilesGcsUri: pulumi.interpolate`${bucket.url}/${bucketObjDependenciesTarGz.name}`,
pickleObjectGcsUri: pulumi.interpolate`${bucket.url}/${bucketObjPickle.name}`,
requirementsGcsUri: pulumi.interpolate`${bucket.url}/${bucketObjRequirementsTxt.name}`,
},
deploymentSpec: {
pscInterfaceConfig: {
networkAttachment: networkAttachment.id,
dnsPeeringConfigs: [{
domain: "example.com.",
targetProject: project.then(project => project.projectId),
targetNetwork: network.name,
}],
},
},
},
}, {
dependsOn: [wait35Minutes],
});
import pulumi
import pulumi_gcp as gcp
import pulumiverse_time as time
bucket = gcp.storage.Bucket("bucket",
name="reasoning-engine",
location="us-central1",
uniform_bucket_level_access=True,
force_destroy=True)
bucket_obj_requirements_txt = gcp.storage.BucketObject("bucket_obj_requirements_txt",
name="requirements.txt",
bucket=bucket.id,
source=pulumi.FileAsset("./test-fixtures/requirements_adk.txt"))
bucket_obj_pickle = gcp.storage.BucketObject("bucket_obj_pickle",
name="code.pkl",
bucket=bucket.id,
source=pulumi.FileAsset("./test-fixtures/pickle_adk.pkl"))
bucket_obj_dependencies_tar_gz = gcp.storage.BucketObject("bucket_obj_dependencies_tar_gz",
name="dependencies.tar.gz",
bucket=bucket.id,
source=pulumi.FileAsset("./test-fixtures/dependencies_adk.tar.gz"))
network = gcp.compute.Network("network",
name="network",
auto_create_subnetworks=False)
subnetwork = gcp.compute.Subnetwork("subnetwork",
name="subnetwork",
region="us-central1",
ip_cidr_range="10.0.0.0/16",
network=network.id)
network_attachment = gcp.compute.NetworkAttachment("network_attachment",
name="network-attachment",
region="us-central1",
connection_preference="ACCEPT_MANUAL",
subnetworks=[subnetwork.id])
# Destroy network attachment 35 minutes after reasoning engine is deleted.
# It guarantees that the network attachment has no more active PSC interfaces.
wait35_minutes = time.Sleep("wait_35_minutes", destroy_duration="35m",
opts = pulumi.ResourceOptions(depends_on=[network_attachment]))
project = gcp.organizations.get_project()
# When PSC-I is configured, Agent deletion will fail,
# although the agent will be deleted.
# Bug at https://github.com/hashicorp/terraform-provider-google/issues/25637
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="reasoning-engine",
description="A basic reasoning engine",
region="us-central1",
spec={
"agent_framework": "google-adk",
"package_spec": {
"python_version": "3.11",
"dependency_files_gcs_uri": pulumi.Output.all(
url=bucket.url,
name=bucket_obj_dependencies_tar_gz.name
).apply(lambda resolved_outputs: f"{resolved_outputs['url']}/{resolved_outputs['name']}")
,
"pickle_object_gcs_uri": pulumi.Output.all(
url=bucket.url,
name=bucket_obj_pickle.name
).apply(lambda resolved_outputs: f"{resolved_outputs['url']}/{resolved_outputs['name']}")
,
"requirements_gcs_uri": pulumi.Output.all(
url=bucket.url,
name=bucket_obj_requirements_txt.name
).apply(lambda resolved_outputs: f"{resolved_outputs['url']}/{resolved_outputs['name']}")
,
},
"deployment_spec": {
"psc_interface_config": {
"network_attachment": network_attachment.id,
"dns_peering_configs": [{
"domain": "example.com.",
"target_project": project.project_id,
"target_network": network.name,
}],
},
},
},
opts = pulumi.ResourceOptions(depends_on=[wait35_minutes]))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/storage"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-time/sdk/go/time"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
bucket, err := storage.NewBucket(ctx, "bucket", &storage.BucketArgs{
Name: pulumi.String("reasoning-engine"),
Location: pulumi.String("us-central1"),
UniformBucketLevelAccess: pulumi.Bool(true),
ForceDestroy: pulumi.Bool(true),
})
if err != nil {
return err
}
bucketObjRequirementsTxt, err := storage.NewBucketObject(ctx, "bucket_obj_requirements_txt", &storage.BucketObjectArgs{
Name: pulumi.String("requirements.txt"),
Bucket: bucket.ID().ToIDOutput().ToStringOutput(),
Source: pulumi.NewFileAsset("./test-fixtures/requirements_adk.txt"),
})
if err != nil {
return err
}
bucketObjPickle, err := storage.NewBucketObject(ctx, "bucket_obj_pickle", &storage.BucketObjectArgs{
Name: pulumi.String("code.pkl"),
Bucket: bucket.ID().ToIDOutput().ToStringOutput(),
Source: pulumi.NewFileAsset("./test-fixtures/pickle_adk.pkl"),
})
if err != nil {
return err
}
bucketObjDependenciesTarGz, err := storage.NewBucketObject(ctx, "bucket_obj_dependencies_tar_gz", &storage.BucketObjectArgs{
Name: pulumi.String("dependencies.tar.gz"),
Bucket: bucket.ID().ToIDOutput().ToStringOutput(),
Source: pulumi.NewFileAsset("./test-fixtures/dependencies_adk.tar.gz"),
})
if err != nil {
return err
}
network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{
Name: pulumi.String("network"),
AutoCreateSubnetworks: pulumi.Bool(false),
})
if err != nil {
return err
}
subnetwork, err := compute.NewSubnetwork(ctx, "subnetwork", &compute.SubnetworkArgs{
Name: pulumi.String("subnetwork"),
Region: pulumi.String("us-central1"),
IpCidrRange: pulumi.String("10.0.0.0/16"),
Network: network.ID().ToIDOutput().ToStringOutput(),
})
if err != nil {
return err
}
networkAttachment, err := compute.NewNetworkAttachment(ctx, "network_attachment", &compute.NetworkAttachmentArgs{
Name: pulumi.String("network-attachment"),
Region: pulumi.String("us-central1"),
ConnectionPreference: pulumi.String("ACCEPT_MANUAL"),
Subnetworks: pulumi.StringArray{
subnetwork.ID().ToIDOutput().ToStringOutput(),
},
})
if err != nil {
return err
}
// Destroy network attachment 35 minutes after reasoning engine is deleted.
// It guarantees that the network attachment has no more active PSC interfaces.
wait35Minutes, err := time.NewSleep(ctx, "wait_35_minutes", &time.SleepArgs{
DestroyDuration: pulumi.String("35m"),
}, pulumi.DependsOn([]pulumi.Resource{
networkAttachment,
}))
if err != nil {
return err
}
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
// When PSC-I is configured, Agent deletion will fail,
// although the agent will be deleted.
// Bug at https://github.com/hashicorp/terraform-provider-google/issues/25637
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("reasoning-engine"),
Description: pulumi.String("A basic reasoning engine"),
Region: pulumi.String("us-central1"),
Spec: &vertex.AiReasoningEngineSpecArgs{
AgentFramework: pulumi.String("google-adk"),
PackageSpec: &vertex.AiReasoningEngineSpecPackageSpecArgs{
PythonVersion: pulumi.String("3.11"),
DependencyFilesGcsUri: pulumi.All(bucket.Url, bucketObjDependenciesTarGz.Name).ApplyT(func(_args []interface{}) (string, error) {
url := _args[0].(string)
name := _args[1].(string)
return fmt.Sprintf("%v/%v", url, name), nil
}).(pulumi.StringOutput),
PickleObjectGcsUri: pulumi.All(bucket.Url, bucketObjPickle.Name).ApplyT(func(_args []interface{}) (string, error) {
url := _args[0].(string)
name := _args[1].(string)
return fmt.Sprintf("%v/%v", url, name), nil
}).(pulumi.StringOutput),
RequirementsGcsUri: pulumi.All(bucket.Url, bucketObjRequirementsTxt.Name).ApplyT(func(_args []interface{}) (string, error) {
url := _args[0].(string)
name := _args[1].(string)
return fmt.Sprintf("%v/%v", url, name), nil
}).(pulumi.StringOutput),
},
DeploymentSpec: &vertex.AiReasoningEngineSpecDeploymentSpecArgs{
PscInterfaceConfig: &vertex.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs{
NetworkAttachment: networkAttachment.ID().ToIDOutput().ToStringOutput(),
DnsPeeringConfigs: vertex.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArray{
&vertex.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs{
Domain: pulumi.String("example.com."),
TargetProject: pulumi.String(project.ProjectId),
TargetNetwork: network.Name,
},
},
},
},
},
}, pulumi.DependsOn([]pulumi.Resource{
wait35Minutes,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Time = Pulumiverse.Time;
return await Deployment.RunAsync(() =>
{
var bucket = new Gcp.Storage.Bucket("bucket", new()
{
Name = "reasoning-engine",
Location = "us-central1",
UniformBucketLevelAccess = true,
ForceDestroy = true,
});
var bucketObjRequirementsTxt = new Gcp.Storage.BucketObject("bucket_obj_requirements_txt", new()
{
Name = "requirements.txt",
Bucket = bucket.Id,
Source = new FileAsset("./test-fixtures/requirements_adk.txt"),
});
var bucketObjPickle = new Gcp.Storage.BucketObject("bucket_obj_pickle", new()
{
Name = "code.pkl",
Bucket = bucket.Id,
Source = new FileAsset("./test-fixtures/pickle_adk.pkl"),
});
var bucketObjDependenciesTarGz = new Gcp.Storage.BucketObject("bucket_obj_dependencies_tar_gz", new()
{
Name = "dependencies.tar.gz",
Bucket = bucket.Id,
Source = new FileAsset("./test-fixtures/dependencies_adk.tar.gz"),
});
var network = new Gcp.Compute.Network("network", new()
{
Name = "network",
AutoCreateSubnetworks = false,
});
var subnetwork = new Gcp.Compute.Subnetwork("subnetwork", new()
{
Name = "subnetwork",
Region = "us-central1",
IpCidrRange = "10.0.0.0/16",
Network = network.Id,
});
var networkAttachment = new Gcp.Compute.NetworkAttachment("network_attachment", new()
{
Name = "network-attachment",
Region = "us-central1",
ConnectionPreference = "ACCEPT_MANUAL",
Subnetworks = new[]
{
subnetwork.Id,
},
});
// Destroy network attachment 35 minutes after reasoning engine is deleted.
// It guarantees that the network attachment has no more active PSC interfaces.
var wait35Minutes = new Time.Sleep("wait_35_minutes", new()
{
DestroyDuration = "35m",
}, new CustomResourceOptions
{
DependsOn =
{
networkAttachment,
},
});
var project = Gcp.Organizations.GetProject.Invoke();
// When PSC-I is configured, Agent deletion will fail,
// although the agent will be deleted.
// Bug at https://github.com/hashicorp/terraform-provider-google/issues/25637
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "reasoning-engine",
Description = "A basic reasoning engine",
Region = "us-central1",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
AgentFramework = "google-adk",
PackageSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecPackageSpecArgs
{
PythonVersion = "3.11",
DependencyFilesGcsUri = Output.Tuple(bucket.Url, bucketObjDependenciesTarGz.Name).Apply(values =>
{
var url = values.Item1;
var name = values.Item2;
return $"{url}/{name}";
}),
PickleObjectGcsUri = Output.Tuple(bucket.Url, bucketObjPickle.Name).Apply(values =>
{
var url = values.Item1;
var name = values.Item2;
return $"{url}/{name}";
}),
RequirementsGcsUri = Output.Tuple(bucket.Url, bucketObjRequirementsTxt.Name).Apply(values =>
{
var url = values.Item1;
var name = values.Item2;
return $"{url}/{name}";
}),
},
DeploymentSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecArgs
{
PscInterfaceConfig = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs
{
NetworkAttachment = networkAttachment.Id,
DnsPeeringConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs
{
Domain = "example.com.",
TargetProject = project.Apply(getProjectResult => getProjectResult.ProjectId),
TargetNetwork = network.Name,
},
},
},
},
},
}, new CustomResourceOptions
{
DependsOn =
{
wait35Minutes,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.storage.Bucket;
import com.pulumi.gcp.storage.BucketArgs;
import com.pulumi.gcp.storage.BucketObject;
import com.pulumi.gcp.storage.BucketObjectArgs;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.compute.NetworkAttachment;
import com.pulumi.gcp.compute.NetworkAttachmentArgs;
import com.pulumiverse.time.Sleep;
import com.pulumiverse.time.SleepArgs;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecPackageSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecDeploymentSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs;
import com.pulumi.asset.FileAsset;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var bucket = new Bucket("bucket", BucketArgs.builder()
.name("reasoning-engine")
.location("us-central1")
.uniformBucketLevelAccess(true)
.forceDestroy(true)
.build());
var bucketObjRequirementsTxt = new BucketObject("bucketObjRequirementsTxt", BucketObjectArgs.builder()
.name("requirements.txt")
.bucket(bucket.id())
.source(new FileAsset("./test-fixtures/requirements_adk.txt"))
.build());
var bucketObjPickle = new BucketObject("bucketObjPickle", BucketObjectArgs.builder()
.name("code.pkl")
.bucket(bucket.id())
.source(new FileAsset("./test-fixtures/pickle_adk.pkl"))
.build());
var bucketObjDependenciesTarGz = new BucketObject("bucketObjDependenciesTarGz", BucketObjectArgs.builder()
.name("dependencies.tar.gz")
.bucket(bucket.id())
.source(new FileAsset("./test-fixtures/dependencies_adk.tar.gz"))
.build());
var network = new Network("network", NetworkArgs.builder()
.name("network")
.autoCreateSubnetworks(false)
.build());
var subnetwork = new Subnetwork("subnetwork", SubnetworkArgs.builder()
.name("subnetwork")
.region("us-central1")
.ipCidrRange("10.0.0.0/16")
.network(network.id())
.build());
var networkAttachment = new NetworkAttachment("networkAttachment", NetworkAttachmentArgs.builder()
.name("network-attachment")
.region("us-central1")
.connectionPreference("ACCEPT_MANUAL")
.subnetworks(subnetwork.id())
.build());
// Destroy network attachment 35 minutes after reasoning engine is deleted.
// It guarantees that the network attachment has no more active PSC interfaces.
var wait35Minutes = new Sleep("wait35Minutes", SleepArgs.builder()
.destroyDuration("35m")
.build(), CustomResourceOptions.builder()
.dependsOn(networkAttachment)
.build());
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
// When PSC-I is configured, Agent deletion will fail,
// although the agent will be deleted.
// Bug at https://github.com/hashicorp/terraform-provider-google/issues/25637
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("reasoning-engine")
.description("A basic reasoning engine")
.region("us-central1")
.spec(AiReasoningEngineSpecArgs.builder()
.agentFramework("google-adk")
.packageSpec(AiReasoningEngineSpecPackageSpecArgs.builder()
.pythonVersion("3.11")
.dependencyFilesGcsUri(Output.tuple(bucket.url(), bucketObjDependenciesTarGz.name()).applyValue(values -> {
var url = values.t1;
var name = values.t2;
return String.format("%s/%s", url,name);
}))
.pickleObjectGcsUri(Output.tuple(bucket.url(), bucketObjPickle.name()).applyValue(values -> {
var url = values.t1;
var name = values.t2;
return String.format("%s/%s", url,name);
}))
.requirementsGcsUri(Output.tuple(bucket.url(), bucketObjRequirementsTxt.name()).applyValue(values -> {
var url = values.t1;
var name = values.t2;
return String.format("%s/%s", url,name);
}))
.build())
.deploymentSpec(AiReasoningEngineSpecDeploymentSpecArgs.builder()
.pscInterfaceConfig(AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs.builder()
.networkAttachment(networkAttachment.id())
.dnsPeeringConfigs(AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs.builder()
.domain("example.com.")
.targetProject(project.projectId())
.targetNetwork(network.name())
.build())
.build())
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(wait35Minutes)
.build());
}
}
resources:
# When PSC-I is configured, Agent deletion will fail,
# although the agent will be deleted.
# Bug at https://github.com/hashicorp/terraform-provider-google/issues/25637
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: reasoning-engine
description: A basic reasoning engine
region: us-central1
spec:
agentFramework: google-adk
packageSpec:
pythonVersion: '3.11'
dependencyFilesGcsUri: ${bucket.url}/${bucketObjDependenciesTarGz.name}
pickleObjectGcsUri: ${bucket.url}/${bucketObjPickle.name}
requirementsGcsUri: ${bucket.url}/${bucketObjRequirementsTxt.name}
deploymentSpec:
pscInterfaceConfig:
networkAttachment: ${networkAttachment.id}
dnsPeeringConfigs:
- domain: example.com.
targetProject: ${project.projectId}
targetNetwork: ${network.name}
options:
dependsOn:
- ${wait35Minutes}
bucketObjRequirementsTxt:
type: gcp:storage:BucketObject
name: bucket_obj_requirements_txt
properties:
name: requirements.txt
bucket: ${bucket.id}
source:
fn::fileAsset: ./test-fixtures/requirements_adk.txt
bucketObjPickle:
type: gcp:storage:BucketObject
name: bucket_obj_pickle
properties:
name: code.pkl
bucket: ${bucket.id}
source:
fn::fileAsset: ./test-fixtures/pickle_adk.pkl
bucketObjDependenciesTarGz:
type: gcp:storage:BucketObject
name: bucket_obj_dependencies_tar_gz
properties:
name: dependencies.tar.gz
bucket: ${bucket.id}
source:
fn::fileAsset: ./test-fixtures/dependencies_adk.tar.gz
bucket:
type: gcp:storage:Bucket
properties:
name: reasoning-engine
location: us-central1
uniformBucketLevelAccess: true
forceDestroy: true
# Destroy network attachment 35 minutes after reasoning engine is deleted.
# It guarantees that the network attachment has no more active PSC interfaces.
wait35Minutes:
type: time:Sleep
name: wait_35_minutes
properties:
destroyDuration: 35m
options:
dependsOn:
- ${networkAttachment}
networkAttachment:
type: gcp:compute:NetworkAttachment
name: network_attachment
properties:
name: network-attachment
region: us-central1
connectionPreference: ACCEPT_MANUAL
subnetworks:
- ${subnetwork.id}
subnetwork:
type: gcp:compute:Subnetwork
properties:
name: subnetwork
region: us-central1
ipCidrRange: 10.0.0.0/16
network: ${network.id}
network:
type: gcp:compute:Network
properties:
name: network
autoCreateSubnetworks: false
variables:
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
time = {
source = "pulumi/time"
}
}
}
data "gcp_organizations_getproject" "project" {
}
# When PSC-I is configured, Agent deletion will fail,
# although the agent will be deleted.
# Bug at https://github.com/hashicorp/terraform-provider-google/issues/25637
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
depends_on = [time_sleep.wait_35_minutes]
display_name = "reasoning-engine"
description = "A basic reasoning engine"
region = "us-central1"
spec = {
agent_framework = "google-adk"
package_spec = {
python_version = "3.11"
dependency_files_gcs_uri ="${gcp_storage_bucket.bucket.url}/${gcp_storage_bucketobject.bucket_obj_dependencies_tar_gz.name}"
pickle_object_gcs_uri ="${gcp_storage_bucket.bucket.url}/${gcp_storage_bucketobject.bucket_obj_pickle.name}"
requirements_gcs_uri ="${gcp_storage_bucket.bucket.url}/${gcp_storage_bucketobject.bucket_obj_requirements_txt.name}"
}
deployment_spec = {
psc_interface_config = {
network_attachment = gcp_compute_networkattachment.network_attachment.id
dns_peering_configs = [{
"domain" = "example.com."
"targetProject" = data.gcp_organizations_getproject.project.project_id
"targetNetwork" = gcp_compute_network.network.name
}]
}
}
}
}
resource "gcp_storage_bucketobject" "bucket_obj_requirements_txt" {
name = "requirements.txt"
bucket = gcp_storage_bucket.bucket.id
source = fileAsset("./test-fixtures/requirements_adk.txt")
}
resource "gcp_storage_bucketobject" "bucket_obj_pickle" {
name = "code.pkl"
bucket = gcp_storage_bucket.bucket.id
source = fileAsset("./test-fixtures/pickle_adk.pkl")
}
resource "gcp_storage_bucketobject" "bucket_obj_dependencies_tar_gz" {
name = "dependencies.tar.gz"
bucket = gcp_storage_bucket.bucket.id
source = fileAsset("./test-fixtures/dependencies_adk.tar.gz")
}
resource "gcp_storage_bucket" "bucket" {
name = "reasoning-engine"
location = "us-central1"
uniform_bucket_level_access = true
force_destroy = true
}
# Destroy network attachment 35 minutes after reasoning engine is deleted.
# It guarantees that the network attachment has no more active PSC interfaces.
resource "time_sleep" "wait_35_minutes" {
depends_on = [gcp_compute_networkattachment.network_attachment]
destroy_duration = "35m"
}
resource "gcp_compute_networkattachment" "network_attachment" {
name = "network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_MANUAL"
subnetworks = [gcp_compute_subnetwork.subnetwork.id]
}
resource "gcp_compute_subnetwork" "subnetwork" {
name = "subnetwork"
region = "us-central1"
ip_cidr_range = "10.0.0.0/16"
network = gcp_compute_network.network.id
}
resource "gcp_compute_network" "network" {
name = "network"
auto_create_subnetworks = false
}
Vertex Ai Reasoning Engine Full
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as time from "@pulumiverse/time";
const classMethods = [{
apiMode: "async",
description: null,
name: "async_query",
parameters: {
type: "object",
required: [],
properties: {},
},
}];
const secret = new gcp.secretmanager.Secret("secret", {
secretId: "secret",
replication: {
auto: {},
},
});
const secretVersion = new gcp.secretmanager.SecretVersion("secret_version", {
secret: secret.id,
secretData: "test",
});
const serviceAccount = new gcp.serviceaccount.Account("service_account", {accountId: "sa"});
const secretAccess = new gcp.secretmanager.SecretIamMember("secret_access", {
secretId: secret.id,
role: "roles/secretmanager.secretAccessor",
member: serviceAccount.member,
});
const project = gcp.organizations.getProject({});
const saIamObjectViewer = new gcp.projects.IAMMember("sa_iam_object_viewer", {
role: "roles/storage.objectViewer",
project: project.then(project => project.id),
member: serviceAccount.member,
});
const saIamAiPlatformUser = new gcp.projects.IAMMember("sa_iam_ai_platform_user", {
role: "roles/aiplatform.user",
project: project.then(project => project.id),
member: serviceAccount.member,
});
const saIamViewer = new gcp.projects.IAMMember("sa_iam_viewer", {
role: "roles/viewer",
project: project.then(project => project.id),
member: serviceAccount.member,
});
// Ensure we wait enough time for IAM permissions to be propagated
const wait5Minutes = new time.Sleep("wait_5_minutes", {createDuration: "5m"}, {
dependsOn: [
saIamAiPlatformUser,
saIamObjectViewer,
saIamViewer,
secretAccess,
secretVersion,
],
});
const bucket = new gcp.storage.Bucket("bucket", {
name: "reasoning-engine",
location: "us-central1",
uniformBucketLevelAccess: true,
forceDestroy: true,
});
const bucketObjRequirementsTxt = new gcp.storage.BucketObject("bucket_obj_requirements_txt", {
name: "requirements.txt",
bucket: bucket.id,
source: new pulumi.asset.FileAsset("./test-fixtures/requirements_adk.txt"),
});
const bucketObjPickle = new gcp.storage.BucketObject("bucket_obj_pickle", {
name: "code.pkl",
bucket: bucket.id,
source: new pulumi.asset.FileAsset("./test-fixtures/pickle_adk.pkl"),
});
const bucketObjDependenciesTarGz = new gcp.storage.BucketObject("bucket_obj_dependencies_tar_gz", {
name: "dependencies.tar.gz",
bucket: bucket.id,
source: new pulumi.asset.FileAsset("./test-fixtures/dependencies_adk.tar.gz"),
});
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "reasoning-engine",
description: "A basic reasoning engine",
region: "us-central1",
encryptionSpec: {
kmsKeyName: "example-key",
},
spec: {
agentFramework: "google-adk",
classMethods: JSON.stringify(classMethods),
serviceAccount: serviceAccount.email,
deploymentSpec: {
minInstances: 1,
maxInstances: 3,
containerConcurrency: 5,
resourceLimits: {
cpu: "4",
memory: "4Gi",
},
envs: [
{
name: "var_1",
value: "value_2",
},
{
name: "var_2",
value: "value_2",
},
],
secretEnvs: [
{
name: "secret_var_1",
secretRef: {
secret: secret.secretId,
version: "latest",
},
},
{
name: "secret_var_2",
secretRef: {
secret: secret.secretId,
version: "latest",
},
},
],
},
packageSpec: {
dependencyFilesGcsUri: pulumi.interpolate`${bucket.url}/${bucketObjDependenciesTarGz.name}`,
pickleObjectGcsUri: pulumi.interpolate`${bucket.url}/${bucketObjPickle.name}`,
pythonVersion: "3.11",
requirementsGcsUri: pulumi.interpolate`${bucket.url}/${bucketObjRequirementsTxt.name}`,
},
},
}, {
dependsOn: [wait5Minutes],
});
import pulumi
import json
import pulumi_gcp as gcp
import pulumiverse_time as time
class_methods = [{
"apiMode": "async",
"description": None,
"name": "async_query",
"parameters": {
"type": "object",
"required": [],
"properties": {},
},
}]
secret = gcp.secretmanager.Secret("secret",
secret_id="secret",
replication={
"auto": {},
})
secret_version = gcp.secretmanager.SecretVersion("secret_version",
secret=secret.id,
secret_data="test")
service_account = gcp.serviceaccount.Account("service_account", account_id="sa")
secret_access = gcp.secretmanager.SecretIamMember("secret_access",
secret_id=secret.id,
role="roles/secretmanager.secretAccessor",
member=service_account.member)
project = gcp.organizations.get_project()
sa_iam_object_viewer = gcp.projects.IAMMember("sa_iam_object_viewer",
role="roles/storage.objectViewer",
project=project.id,
member=service_account.member)
sa_iam_ai_platform_user = gcp.projects.IAMMember("sa_iam_ai_platform_user",
role="roles/aiplatform.user",
project=project.id,
member=service_account.member)
sa_iam_viewer = gcp.projects.IAMMember("sa_iam_viewer",
role="roles/viewer",
project=project.id,
member=service_account.member)
# Ensure we wait enough time for IAM permissions to be propagated
wait5_minutes = time.Sleep("wait_5_minutes", create_duration="5m",
opts = pulumi.ResourceOptions(depends_on=[
sa_iam_ai_platform_user,
sa_iam_object_viewer,
sa_iam_viewer,
secret_access,
secret_version,
]))
bucket = gcp.storage.Bucket("bucket",
name="reasoning-engine",
location="us-central1",
uniform_bucket_level_access=True,
force_destroy=True)
bucket_obj_requirements_txt = gcp.storage.BucketObject("bucket_obj_requirements_txt",
name="requirements.txt",
bucket=bucket.id,
source=pulumi.FileAsset("./test-fixtures/requirements_adk.txt"))
bucket_obj_pickle = gcp.storage.BucketObject("bucket_obj_pickle",
name="code.pkl",
bucket=bucket.id,
source=pulumi.FileAsset("./test-fixtures/pickle_adk.pkl"))
bucket_obj_dependencies_tar_gz = gcp.storage.BucketObject("bucket_obj_dependencies_tar_gz",
name="dependencies.tar.gz",
bucket=bucket.id,
source=pulumi.FileAsset("./test-fixtures/dependencies_adk.tar.gz"))
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="reasoning-engine",
description="A basic reasoning engine",
region="us-central1",
encryption_spec={
"kms_key_name": "example-key",
},
spec={
"agent_framework": "google-adk",
"class_methods": json.dumps(class_methods),
"service_account": service_account.email,
"deployment_spec": {
"min_instances": 1,
"max_instances": 3,
"container_concurrency": 5,
"resource_limits": {
"cpu": "4",
"memory": "4Gi",
},
"envs": [
{
"name": "var_1",
"value": "value_2",
},
{
"name": "var_2",
"value": "value_2",
},
],
"secret_envs": [
{
"name": "secret_var_1",
"secret_ref": {
"secret": secret.secret_id,
"version": "latest",
},
},
{
"name": "secret_var_2",
"secret_ref": {
"secret": secret.secret_id,
"version": "latest",
},
},
],
},
"package_spec": {
"dependency_files_gcs_uri": pulumi.Output.all(
url=bucket.url,
name=bucket_obj_dependencies_tar_gz.name
).apply(lambda resolved_outputs: f"{resolved_outputs['url']}/{resolved_outputs['name']}")
,
"pickle_object_gcs_uri": pulumi.Output.all(
url=bucket.url,
name=bucket_obj_pickle.name
).apply(lambda resolved_outputs: f"{resolved_outputs['url']}/{resolved_outputs['name']}")
,
"python_version": "3.11",
"requirements_gcs_uri": pulumi.Output.all(
url=bucket.url,
name=bucket_obj_requirements_txt.name
).apply(lambda resolved_outputs: f"{resolved_outputs['url']}/{resolved_outputs['name']}")
,
},
},
opts = pulumi.ResourceOptions(depends_on=[wait5_minutes]))
package main
import (
"encoding/json"
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/secretmanager"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/serviceaccount"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/storage"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-time/sdk/go/time"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
classMethods := []map[string]interface{}{
map[string]interface{}{
"apiMode": "async",
"description": nil,
"name": "async_query",
"parameters": map[string]interface{}{
"type": "object",
"required": []interface{}{},
"properties": map[string]interface{}{},
},
},
}
secret, err := secretmanager.NewSecret(ctx, "secret", &secretmanager.SecretArgs{
SecretId: pulumi.String("secret"),
Replication: &secretmanager.SecretReplicationArgs{
Auto: &secretmanager.SecretReplicationAutoArgs{},
},
})
if err != nil {
return err
}
secretVersion, err := secretmanager.NewSecretVersion(ctx, "secret_version", &secretmanager.SecretVersionArgs{
Secret: secret.ID().ToIDOutput().ToStringOutput(),
SecretData: pulumi.String("test"),
})
if err != nil {
return err
}
serviceAccount, err := serviceaccount.NewAccount(ctx, "service_account", &serviceaccount.AccountArgs{
AccountId: pulumi.String("sa"),
})
if err != nil {
return err
}
secretAccess, err := secretmanager.NewSecretIamMember(ctx, "secret_access", &secretmanager.SecretIamMemberArgs{
SecretId: secret.ID().ToIDOutput().ToStringOutput(),
Role: pulumi.String("roles/secretmanager.secretAccessor"),
Member: serviceAccount.Member,
})
if err != nil {
return err
}
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
saIamObjectViewer, err := projects.NewIAMMember(ctx, "sa_iam_object_viewer", &projects.IAMMemberArgs{
Role: pulumi.String("roles/storage.objectViewer"),
Project: pulumi.String(project.Id),
Member: serviceAccount.Member,
})
if err != nil {
return err
}
saIamAiPlatformUser, err := projects.NewIAMMember(ctx, "sa_iam_ai_platform_user", &projects.IAMMemberArgs{
Role: pulumi.String("roles/aiplatform.user"),
Project: pulumi.String(project.Id),
Member: serviceAccount.Member,
})
if err != nil {
return err
}
saIamViewer, err := projects.NewIAMMember(ctx, "sa_iam_viewer", &projects.IAMMemberArgs{
Role: pulumi.String("roles/viewer"),
Project: pulumi.String(project.Id),
Member: serviceAccount.Member,
})
if err != nil {
return err
}
// Ensure we wait enough time for IAM permissions to be propagated
wait5Minutes, err := time.NewSleep(ctx, "wait_5_minutes", &time.SleepArgs{
CreateDuration: pulumi.String("5m"),
}, pulumi.DependsOn([]pulumi.Resource{
saIamAiPlatformUser,
saIamObjectViewer,
saIamViewer,
secretAccess,
secretVersion,
}))
if err != nil {
return err
}
bucket, err := storage.NewBucket(ctx, "bucket", &storage.BucketArgs{
Name: pulumi.String("reasoning-engine"),
Location: pulumi.String("us-central1"),
UniformBucketLevelAccess: pulumi.Bool(true),
ForceDestroy: pulumi.Bool(true),
})
if err != nil {
return err
}
bucketObjRequirementsTxt, err := storage.NewBucketObject(ctx, "bucket_obj_requirements_txt", &storage.BucketObjectArgs{
Name: pulumi.String("requirements.txt"),
Bucket: bucket.ID().ToIDOutput().ToStringOutput(),
Source: pulumi.NewFileAsset("./test-fixtures/requirements_adk.txt"),
})
if err != nil {
return err
}
bucketObjPickle, err := storage.NewBucketObject(ctx, "bucket_obj_pickle", &storage.BucketObjectArgs{
Name: pulumi.String("code.pkl"),
Bucket: bucket.ID().ToIDOutput().ToStringOutput(),
Source: pulumi.NewFileAsset("./test-fixtures/pickle_adk.pkl"),
})
if err != nil {
return err
}
bucketObjDependenciesTarGz, err := storage.NewBucketObject(ctx, "bucket_obj_dependencies_tar_gz", &storage.BucketObjectArgs{
Name: pulumi.String("dependencies.tar.gz"),
Bucket: bucket.ID().ToIDOutput().ToStringOutput(),
Source: pulumi.NewFileAsset("./test-fixtures/dependencies_adk.tar.gz"),
})
if err != nil {
return err
}
tmpJSON0, err := json.Marshal(classMethods)
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("reasoning-engine"),
Description: pulumi.String("A basic reasoning engine"),
Region: pulumi.String("us-central1"),
EncryptionSpec: &vertex.AiReasoningEngineEncryptionSpecArgs{
KmsKeyName: pulumi.String("example-key"),
},
Spec: &vertex.AiReasoningEngineSpecArgs{
AgentFramework: pulumi.String("google-adk"),
ClassMethods: pulumi.String(json0),
ServiceAccount: serviceAccount.Email,
DeploymentSpec: &vertex.AiReasoningEngineSpecDeploymentSpecArgs{
MinInstances: pulumi.Int(1),
MaxInstances: pulumi.Int(3),
ContainerConcurrency: pulumi.Int(5),
ResourceLimits: pulumi.StringMap{
"cpu": pulumi.String("4"),
"memory": pulumi.String("4Gi"),
},
Envs: vertex.AiReasoningEngineSpecDeploymentSpecEnvArray{
&vertex.AiReasoningEngineSpecDeploymentSpecEnvArgs{
Name: pulumi.String("var_1"),
Value: pulumi.String("value_2"),
},
&vertex.AiReasoningEngineSpecDeploymentSpecEnvArgs{
Name: pulumi.String("var_2"),
Value: pulumi.String("value_2"),
},
},
SecretEnvs: vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvArray{
&vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvArgs{
Name: pulumi.String("secret_var_1"),
SecretRef: &vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs{
Secret: secret.SecretId,
Version: pulumi.String("latest"),
},
},
&vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvArgs{
Name: pulumi.String("secret_var_2"),
SecretRef: &vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs{
Secret: secret.SecretId,
Version: pulumi.String("latest"),
},
},
},
},
PackageSpec: &vertex.AiReasoningEngineSpecPackageSpecArgs{
DependencyFilesGcsUri: pulumi.All(bucket.Url, bucketObjDependenciesTarGz.Name).ApplyT(func(_args []interface{}) (string, error) {
url := _args[0].(string)
name := _args[1].(string)
return fmt.Sprintf("%v/%v", url, name), nil
}).(pulumi.StringOutput),
PickleObjectGcsUri: pulumi.All(bucket.Url, bucketObjPickle.Name).ApplyT(func(_args []interface{}) (string, error) {
url := _args[0].(string)
name := _args[1].(string)
return fmt.Sprintf("%v/%v", url, name), nil
}).(pulumi.StringOutput),
PythonVersion: pulumi.String("3.11"),
RequirementsGcsUri: pulumi.All(bucket.Url, bucketObjRequirementsTxt.Name).ApplyT(func(_args []interface{}) (string, error) {
url := _args[0].(string)
name := _args[1].(string)
return fmt.Sprintf("%v/%v", url, name), nil
}).(pulumi.StringOutput),
},
},
}, pulumi.DependsOn([]pulumi.Resource{
wait5Minutes,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Time = Pulumiverse.Time;
return await Deployment.RunAsync(() =>
{
var classMethods = new[]
{
{
{ "apiMode", "async" },
{ "description", null },
{ "name", "async_query" },
{ "parameters",
{
{ "type", "object" },
{ "required", new[] {} },
{ "properties", null },
} },
},
};
var secret = new Gcp.SecretManager.Secret("secret", new()
{
SecretId = "secret",
Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs
{
Auto = null,
},
});
var secretVersion = new Gcp.SecretManager.SecretVersion("secret_version", new()
{
Secret = secret.Id,
SecretData = "test",
});
var serviceAccount = new Gcp.ServiceAccount.Account("service_account", new()
{
AccountId = "sa",
});
var secretAccess = new Gcp.SecretManager.SecretIamMember("secret_access", new()
{
SecretId = secret.Id,
Role = "roles/secretmanager.secretAccessor",
Member = serviceAccount.Member,
});
var project = Gcp.Organizations.GetProject.Invoke();
var saIamObjectViewer = new Gcp.Projects.IAMMember("sa_iam_object_viewer", new()
{
Role = "roles/storage.objectViewer",
Project = project.Apply(getProjectResult => getProjectResult.Id),
Member = serviceAccount.Member,
});
var saIamAiPlatformUser = new Gcp.Projects.IAMMember("sa_iam_ai_platform_user", new()
{
Role = "roles/aiplatform.user",
Project = project.Apply(getProjectResult => getProjectResult.Id),
Member = serviceAccount.Member,
});
var saIamViewer = new Gcp.Projects.IAMMember("sa_iam_viewer", new()
{
Role = "roles/viewer",
Project = project.Apply(getProjectResult => getProjectResult.Id),
Member = serviceAccount.Member,
});
// Ensure we wait enough time for IAM permissions to be propagated
var wait5Minutes = new Time.Sleep("wait_5_minutes", new()
{
CreateDuration = "5m",
}, new CustomResourceOptions
{
DependsOn =
{
saIamAiPlatformUser,
saIamObjectViewer,
saIamViewer,
secretAccess,
secretVersion,
},
});
var bucket = new Gcp.Storage.Bucket("bucket", new()
{
Name = "reasoning-engine",
Location = "us-central1",
UniformBucketLevelAccess = true,
ForceDestroy = true,
});
var bucketObjRequirementsTxt = new Gcp.Storage.BucketObject("bucket_obj_requirements_txt", new()
{
Name = "requirements.txt",
Bucket = bucket.Id,
Source = new FileAsset("./test-fixtures/requirements_adk.txt"),
});
var bucketObjPickle = new Gcp.Storage.BucketObject("bucket_obj_pickle", new()
{
Name = "code.pkl",
Bucket = bucket.Id,
Source = new FileAsset("./test-fixtures/pickle_adk.pkl"),
});
var bucketObjDependenciesTarGz = new Gcp.Storage.BucketObject("bucket_obj_dependencies_tar_gz", new()
{
Name = "dependencies.tar.gz",
Bucket = bucket.Id,
Source = new FileAsset("./test-fixtures/dependencies_adk.tar.gz"),
});
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "reasoning-engine",
Description = "A basic reasoning engine",
Region = "us-central1",
EncryptionSpec = new Gcp.Vertex.Inputs.AiReasoningEngineEncryptionSpecArgs
{
KmsKeyName = "example-key",
},
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
AgentFramework = "google-adk",
ClassMethods = JsonSerializer.Serialize(classMethods),
ServiceAccount = serviceAccount.Email,
DeploymentSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecArgs
{
MinInstances = 1,
MaxInstances = 3,
ContainerConcurrency = 5,
ResourceLimits =
{
{ "cpu", "4" },
{ "memory", "4Gi" },
},
Envs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecEnvArgs
{
Name = "var_1",
Value = "value_2",
},
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecEnvArgs
{
Name = "var_2",
Value = "value_2",
},
},
SecretEnvs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvArgs
{
Name = "secret_var_1",
SecretRef = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs
{
Secret = secret.SecretId,
Version = "latest",
},
},
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvArgs
{
Name = "secret_var_2",
SecretRef = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs
{
Secret = secret.SecretId,
Version = "latest",
},
},
},
},
PackageSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecPackageSpecArgs
{
DependencyFilesGcsUri = Output.Tuple(bucket.Url, bucketObjDependenciesTarGz.Name).Apply(values =>
{
var url = values.Item1;
var name = values.Item2;
return $"{url}/{name}";
}),
PickleObjectGcsUri = Output.Tuple(bucket.Url, bucketObjPickle.Name).Apply(values =>
{
var url = values.Item1;
var name = values.Item2;
return $"{url}/{name}";
}),
PythonVersion = "3.11",
RequirementsGcsUri = Output.Tuple(bucket.Url, bucketObjRequirementsTxt.Name).Apply(values =>
{
var url = values.Item1;
var name = values.Item2;
return $"{url}/{name}";
}),
},
},
}, new CustomResourceOptions
{
DependsOn =
{
wait5Minutes,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.secretmanager.Secret;
import com.pulumi.gcp.secretmanager.SecretArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationAutoArgs;
import com.pulumi.gcp.secretmanager.SecretVersion;
import com.pulumi.gcp.secretmanager.SecretVersionArgs;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.gcp.secretmanager.SecretIamMember;
import com.pulumi.gcp.secretmanager.SecretIamMemberArgs;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.projects.IAMMember;
import com.pulumi.gcp.projects.IAMMemberArgs;
import com.pulumiverse.time.Sleep;
import com.pulumiverse.time.SleepArgs;
import com.pulumi.gcp.storage.Bucket;
import com.pulumi.gcp.storage.BucketArgs;
import com.pulumi.gcp.storage.BucketObject;
import com.pulumi.gcp.storage.BucketObjectArgs;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineEncryptionSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecDeploymentSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecDeploymentSpecEnvArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecPackageSpecArgs;
import com.pulumi.asset.FileAsset;
import static com.pulumi.codegen.internal.Serialization.*;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var classMethods = Arrays.asList(Map.ofEntries(
Map.entry("apiMode", "async"),
Map.entry("description", null),
Map.entry("name", "async_query"),
Map.entry("parameters", Map.ofEntries(
Map.entry("type", "object"),
Map.entry("required", Arrays.asList()),
Map.entry("properties", Map.ofEntries(
))
))
));
var secret = new Secret("secret", SecretArgs.builder()
.secretId("secret")
.replication(SecretReplicationArgs.builder()
.auto(SecretReplicationAutoArgs.builder()
.build())
.build())
.build());
var secretVersion = new SecretVersion("secretVersion", SecretVersionArgs.builder()
.secret(secret.id())
.secretData("test")
.build());
var serviceAccount = new Account("serviceAccount", AccountArgs.builder()
.accountId("sa")
.build());
var secretAccess = new SecretIamMember("secretAccess", SecretIamMemberArgs.builder()
.secretId(secret.id())
.role("roles/secretmanager.secretAccessor")
.member(serviceAccount.member())
.build());
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var saIamObjectViewer = new IAMMember("saIamObjectViewer", IAMMemberArgs.builder()
.role("roles/storage.objectViewer")
.project(project.id())
.member(serviceAccount.member())
.build());
var saIamAiPlatformUser = new IAMMember("saIamAiPlatformUser", IAMMemberArgs.builder()
.role("roles/aiplatform.user")
.project(project.id())
.member(serviceAccount.member())
.build());
var saIamViewer = new IAMMember("saIamViewer", IAMMemberArgs.builder()
.role("roles/viewer")
.project(project.id())
.member(serviceAccount.member())
.build());
// Ensure we wait enough time for IAM permissions to be propagated
var wait5Minutes = new Sleep("wait5Minutes", SleepArgs.builder()
.createDuration("5m")
.build(), CustomResourceOptions.builder()
.dependsOn(
saIamAiPlatformUser,
saIamObjectViewer,
saIamViewer,
secretAccess,
secretVersion)
.build());
var bucket = new Bucket("bucket", BucketArgs.builder()
.name("reasoning-engine")
.location("us-central1")
.uniformBucketLevelAccess(true)
.forceDestroy(true)
.build());
var bucketObjRequirementsTxt = new BucketObject("bucketObjRequirementsTxt", BucketObjectArgs.builder()
.name("requirements.txt")
.bucket(bucket.id())
.source(new FileAsset("./test-fixtures/requirements_adk.txt"))
.build());
var bucketObjPickle = new BucketObject("bucketObjPickle", BucketObjectArgs.builder()
.name("code.pkl")
.bucket(bucket.id())
.source(new FileAsset("./test-fixtures/pickle_adk.pkl"))
.build());
var bucketObjDependenciesTarGz = new BucketObject("bucketObjDependenciesTarGz", BucketObjectArgs.builder()
.name("dependencies.tar.gz")
.bucket(bucket.id())
.source(new FileAsset("./test-fixtures/dependencies_adk.tar.gz"))
.build());
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("reasoning-engine")
.description("A basic reasoning engine")
.region("us-central1")
.encryptionSpec(AiReasoningEngineEncryptionSpecArgs.builder()
.kmsKeyName("example-key")
.build())
.spec(AiReasoningEngineSpecArgs.builder()
.agentFramework("google-adk")
.classMethods(serializeJson(
classMethods))
.serviceAccount(serviceAccount.email())
.deploymentSpec(AiReasoningEngineSpecDeploymentSpecArgs.builder()
.minInstances(1)
.maxInstances(3)
.containerConcurrency(5)
.resourceLimits(Map.ofEntries(
Map.entry("cpu", "4"),
Map.entry("memory", "4Gi")
))
.envs(
AiReasoningEngineSpecDeploymentSpecEnvArgs.builder()
.name("var_1")
.value("value_2")
.build(),
AiReasoningEngineSpecDeploymentSpecEnvArgs.builder()
.name("var_2")
.value("value_2")
.build())
.secretEnvs(
AiReasoningEngineSpecDeploymentSpecSecretEnvArgs.builder()
.name("secret_var_1")
.secretRef(AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs.builder()
.secret(secret.secretId())
.version("latest")
.build())
.build(),
AiReasoningEngineSpecDeploymentSpecSecretEnvArgs.builder()
.name("secret_var_2")
.secretRef(AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs.builder()
.secret(secret.secretId())
.version("latest")
.build())
.build())
.build())
.packageSpec(AiReasoningEngineSpecPackageSpecArgs.builder()
.dependencyFilesGcsUri(Output.tuple(bucket.url(), bucketObjDependenciesTarGz.name()).applyValue(values -> {
var url = values.t1;
var name = values.t2;
return String.format("%s/%s", url,name);
}))
.pickleObjectGcsUri(Output.tuple(bucket.url(), bucketObjPickle.name()).applyValue(values -> {
var url = values.t1;
var name = values.t2;
return String.format("%s/%s", url,name);
}))
.pythonVersion("3.11")
.requirementsGcsUri(Output.tuple(bucket.url(), bucketObjRequirementsTxt.name()).applyValue(values -> {
var url = values.t1;
var name = values.t2;
return String.format("%s/%s", url,name);
}))
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(wait5Minutes)
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: reasoning-engine
description: A basic reasoning engine
region: us-central1
encryptionSpec:
kmsKeyName: example-key
spec:
agentFramework: google-adk
classMethods:
fn::toJSON: ${classMethods}
serviceAccount: ${serviceAccount.email}
deploymentSpec:
minInstances: 1
maxInstances: 3
containerConcurrency: 5
resourceLimits:
cpu: '4'
memory: 4Gi
envs:
- name: var_1
value: value_2
- name: var_2
value: value_2
secretEnvs:
- name: secret_var_1
secretRef:
secret: ${secret.secretId}
version: latest
- name: secret_var_2
secretRef:
secret: ${secret.secretId}
version: latest
packageSpec:
dependencyFilesGcsUri: ${bucket.url}/${bucketObjDependenciesTarGz.name}
pickleObjectGcsUri: ${bucket.url}/${bucketObjPickle.name}
pythonVersion: '3.11'
requirementsGcsUri: ${bucket.url}/${bucketObjRequirementsTxt.name}
options:
dependsOn:
- ${wait5Minutes}
# Ensure we wait enough time for IAM permissions to be propagated
wait5Minutes:
type: time:Sleep
name: wait_5_minutes
properties:
createDuration: 5m
options:
dependsOn:
- ${saIamAiPlatformUser}
- ${saIamObjectViewer}
- ${saIamViewer}
- ${secretAccess}
- ${secretVersion}
secretVersion:
type: gcp:secretmanager:SecretVersion
name: secret_version
properties:
secret: ${secret.id}
secretData: test
secret:
type: gcp:secretmanager:Secret
properties:
secretId: secret
replication:
auto: {}
secretAccess:
type: gcp:secretmanager:SecretIamMember
name: secret_access
properties:
secretId: ${secret.id}
role: roles/secretmanager.secretAccessor
member: ${serviceAccount.member}
bucket:
type: gcp:storage:Bucket
properties:
name: reasoning-engine
location: us-central1
uniformBucketLevelAccess: true
forceDestroy: true
bucketObjRequirementsTxt:
type: gcp:storage:BucketObject
name: bucket_obj_requirements_txt
properties:
name: requirements.txt
bucket: ${bucket.id}
source:
fn::fileAsset: ./test-fixtures/requirements_adk.txt
bucketObjPickle:
type: gcp:storage:BucketObject
name: bucket_obj_pickle
properties:
name: code.pkl
bucket: ${bucket.id}
source:
fn::fileAsset: ./test-fixtures/pickle_adk.pkl
bucketObjDependenciesTarGz:
type: gcp:storage:BucketObject
name: bucket_obj_dependencies_tar_gz
properties:
name: dependencies.tar.gz
bucket: ${bucket.id}
source:
fn::fileAsset: ./test-fixtures/dependencies_adk.tar.gz
serviceAccount:
type: gcp:serviceaccount:Account
name: service_account
properties:
accountId: sa
saIamObjectViewer:
type: gcp:projects:IAMMember
name: sa_iam_object_viewer
properties:
role: roles/storage.objectViewer
project: ${project.id}
member: ${serviceAccount.member}
saIamAiPlatformUser:
type: gcp:projects:IAMMember
name: sa_iam_ai_platform_user
properties:
role: roles/aiplatform.user
project: ${project.id}
member: ${serviceAccount.member}
saIamViewer:
type: gcp:projects:IAMMember
name: sa_iam_viewer
properties:
role: roles/viewer
project: ${project.id}
member: ${serviceAccount.member}
variables:
classMethods:
- apiMode: async
description: null
name: async_query
parameters:
type: object
required: []
properties: {}
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
time = {
source = "pulumi/time"
}
}
}
data "gcp_organizations_getproject" "project" {
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
depends_on = [time_sleep.wait_5_minutes]
display_name = "reasoning-engine"
description = "A basic reasoning engine"
region = "us-central1"
encryption_spec = {
kms_key_name = "example-key"
}
spec = {
agent_framework = "google-adk"
class_methods = jsonencode(local.classMethods)
service_account = gcp_serviceaccount_account.service_account.email
deployment_spec = {
min_instances = 1
max_instances = 3
container_concurrency = 5
resource_limits = {
"cpu" = "4"
"memory" = "4Gi"
}
envs = [{
"name" = "var_1"
"value" = "value_2"
}, {
"name" = "var_2"
"value" = "value_2"
}]
secret_envs = [{
"name" = "secret_var_1"
"secretRef" = {
"secret" = gcp_secretmanager_secret.secret.secret_id
"version" = "latest"
}
}, {
"name" = "secret_var_2"
"secretRef" = {
"secret" = gcp_secretmanager_secret.secret.secret_id
"version" = "latest"
}
}]
}
package_spec = {
dependency_files_gcs_uri ="${gcp_storage_bucket.bucket.url}/${gcp_storage_bucketobject.bucket_obj_dependencies_tar_gz.name}"
pickle_object_gcs_uri ="${gcp_storage_bucket.bucket.url}/${gcp_storage_bucketobject.bucket_obj_pickle.name}"
python_version = "3.11"
requirements_gcs_uri ="${gcp_storage_bucket.bucket.url}/${gcp_storage_bucketobject.bucket_obj_requirements_txt.name}"
}
}
}
# Ensure we wait enough time for IAM permissions to be propagated
resource "time_sleep" "wait_5_minutes" {
depends_on = [gcp_projects_iammember.sa_iam_ai_platform_user, gcp_projects_iammember.sa_iam_object_viewer, gcp_projects_iammember.sa_iam_viewer, gcp_secretmanager_secretiammember.secret_access, gcp_secretmanager_secretversion.secret_version]
create_duration = "5m"
}
resource "gcp_secretmanager_secretversion" "secret_version" {
secret = gcp_secretmanager_secret.secret.id
secret_data = "test"
}
resource "gcp_secretmanager_secret" "secret" {
secret_id = "secret"
replication = {
auto = {}
}
}
resource "gcp_secretmanager_secretiammember" "secret_access" {
secret_id = gcp_secretmanager_secret.secret.id
role = "roles/secretmanager.secretAccessor"
member = gcp_serviceaccount_account.service_account.member
}
resource "gcp_storage_bucket" "bucket" {
name = "reasoning-engine"
location = "us-central1"
uniform_bucket_level_access = true
force_destroy = true
}
resource "gcp_storage_bucketobject" "bucket_obj_requirements_txt" {
name = "requirements.txt"
bucket = gcp_storage_bucket.bucket.id
source = fileAsset("./test-fixtures/requirements_adk.txt")
}
resource "gcp_storage_bucketobject" "bucket_obj_pickle" {
name = "code.pkl"
bucket = gcp_storage_bucket.bucket.id
source = fileAsset("./test-fixtures/pickle_adk.pkl")
}
resource "gcp_storage_bucketobject" "bucket_obj_dependencies_tar_gz" {
name = "dependencies.tar.gz"
bucket = gcp_storage_bucket.bucket.id
source = fileAsset("./test-fixtures/dependencies_adk.tar.gz")
}
resource "gcp_serviceaccount_account" "service_account" {
account_id = "sa"
}
resource "gcp_projects_iammember" "sa_iam_object_viewer" {
role = "roles/storage.objectViewer"
project = data.gcp_organizations_getproject.project.id
member = gcp_serviceaccount_account.service_account.member
}
resource "gcp_projects_iammember" "sa_iam_ai_platform_user" {
role = "roles/aiplatform.user"
project = data.gcp_organizations_getproject.project.id
member = gcp_serviceaccount_account.service_account.member
}
resource "gcp_projects_iammember" "sa_iam_viewer" {
role = "roles/viewer"
project = data.gcp_organizations_getproject.project.id
member = gcp_serviceaccount_account.service_account.member
}
locals {
classMethods = [{
"apiMode" = "async"
"description" = null
"name" = "async_query"
"parameters" = {
"type" = "object"
"required" = []
"properties" = {}
}
}]
}
Vertex Ai Reasoning Engine Context Spec
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const project = gcp.organizations.getProject({});
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "re-ctx-spec",
description: "Reasoning engine with context spec",
region: "us-central1",
trafficConfig: {
trafficSplitAlwaysLatest: {},
},
contextSpec: {
memoryBankConfig: {
generationConfig: {
model: project.then(project => `projects/${project.projectId}/locations/us-central1/publishers/google/models/gemini-2.5-flash`),
},
similaritySearchConfig: {
embeddingModel: project.then(project => `projects/${project.projectId}/locations/us-central1/publishers/google/models/text-embedding-005`),
},
disableMemoryRevisions: false,
customizationConfigs: [
{
scopeKeys: ["user_id"],
enableThirdPersonMemories: true,
consolidationConfig: {
revisionsPerCandidateCount: 1,
},
memoryTopics: [{
managedMemoryTopic: {
managedTopicEnum: "USER_PREFERENCES",
},
}],
},
{
scopeKeys: [
"user_id",
"session_id",
],
enableThirdPersonMemories: true,
memoryTopics: [{
customMemoryTopic: {
label: "session_scratchpad",
description: "Active consideration details, recent queries, and temporary workflow state.",
},
}],
},
],
structuredMemoryConfigs: [
{
scopeKeys: ["user_id"],
schemaConfigs: [{
id: "user-profile",
memorySchema: JSON.stringify({
type: "OBJECT",
properties: {
name: {
type: "STRING",
description: "Name of the user.",
},
technical_stack: {
type: "STRING",
description: "Comma-separated list tools or languages used by the user.",
},
primary_goal: {
type: "STRING",
description: "The main objective the user is pursuing.",
},
expertise_level: {
type: "STRING",
description: "Current skill level (e.g., Junior, Senior).",
},
job_status: {
type: "STRING",
description: "The job status of the individual",
"enum": [
"unemployed",
"part_time",
"full_time",
"student",
],
},
},
}),
}],
},
{
scopeKeys: [
"user_id",
"session_id",
],
schemaConfigs: [{
id: "conversation-summary",
memorySchema: JSON.stringify({
type: "OBJECT",
properties: {
main_topic: {
type: "STRING",
description: "The primary topic of this specific chat session.",
},
status: {
type: "STRING",
description: "Current resolution state of the discussion.",
"enum": [
"open",
"in_progress",
"resolved",
],
},
},
}),
}],
},
],
ttlConfig: {
defaultTtl: "86400s",
},
},
},
});
import pulumi
import json
import pulumi_gcp as gcp
project = gcp.organizations.get_project()
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="re-ctx-spec",
description="Reasoning engine with context spec",
region="us-central1",
traffic_config={
"traffic_split_always_latest": {},
},
context_spec={
"memory_bank_config": {
"generation_config": {
"model": f"projects/{project.project_id}/locations/us-central1/publishers/google/models/gemini-2.5-flash",
},
"similarity_search_config": {
"embedding_model": f"projects/{project.project_id}/locations/us-central1/publishers/google/models/text-embedding-005",
},
"disable_memory_revisions": False,
"customization_configs": [
{
"scope_keys": ["user_id"],
"enable_third_person_memories": True,
"consolidation_config": {
"revisions_per_candidate_count": 1,
},
"memory_topics": [{
"managed_memory_topic": {
"managed_topic_enum": "USER_PREFERENCES",
},
}],
},
{
"scope_keys": [
"user_id",
"session_id",
],
"enable_third_person_memories": True,
"memory_topics": [{
"custom_memory_topic": {
"label": "session_scratchpad",
"description": "Active consideration details, recent queries, and temporary workflow state.",
},
}],
},
],
"structured_memory_configs": [
{
"scope_keys": ["user_id"],
"schema_configs": [{
"id": "user-profile",
"memory_schema": json.dumps({
"type": "OBJECT",
"properties": {
"name": {
"type": "STRING",
"description": "Name of the user.",
},
"technical_stack": {
"type": "STRING",
"description": "Comma-separated list tools or languages used by the user.",
},
"primary_goal": {
"type": "STRING",
"description": "The main objective the user is pursuing.",
},
"expertise_level": {
"type": "STRING",
"description": "Current skill level (e.g., Junior, Senior).",
},
"job_status": {
"type": "STRING",
"description": "The job status of the individual",
"enum": [
"unemployed",
"part_time",
"full_time",
"student",
],
},
},
}),
}],
},
{
"scope_keys": [
"user_id",
"session_id",
],
"schema_configs": [{
"id": "conversation-summary",
"memory_schema": json.dumps({
"type": "OBJECT",
"properties": {
"main_topic": {
"type": "STRING",
"description": "The primary topic of this specific chat session.",
},
"status": {
"type": "STRING",
"description": "Current resolution state of the discussion.",
"enum": [
"open",
"in_progress",
"resolved",
],
},
},
}),
}],
},
],
"ttl_config": {
"default_ttl": "86400s",
},
},
})
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
tmpJSON0, err := json.Marshal(map[string]interface{}{
"type": "OBJECT",
"properties": map[string]interface{}{
"name": map[string]string{
"type": "STRING",
"description": "Name of the user.",
},
"technical_stack": map[string]string{
"type": "STRING",
"description": "Comma-separated list tools or languages used by the user.",
},
"primary_goal": map[string]string{
"type": "STRING",
"description": "The main objective the user is pursuing.",
},
"expertise_level": map[string]string{
"type": "STRING",
"description": "Current skill level (e.g., Junior, Senior).",
},
"job_status": map[string]interface{}{
"type": "STRING",
"description": "The job status of the individual",
"enum": []string{
"unemployed",
"part_time",
"full_time",
"student",
},
},
},
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
tmpJSON1, err := json.Marshal(map[string]interface{}{
"type": "OBJECT",
"properties": map[string]interface{}{
"main_topic": map[string]string{
"type": "STRING",
"description": "The primary topic of this specific chat session.",
},
"status": map[string]interface{}{
"type": "STRING",
"description": "Current resolution state of the discussion.",
"enum": []string{
"open",
"in_progress",
"resolved",
},
},
},
})
if err != nil {
return err
}
json1 := string(tmpJSON1)
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("re-ctx-spec"),
Description: pulumi.String("Reasoning engine with context spec"),
Region: pulumi.String("us-central1"),
TrafficConfig: &vertex.AiReasoningEngineTrafficConfigArgs{
TrafficSplitAlwaysLatest: &vertex.AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs{},
},
ContextSpec: &vertex.AiReasoningEngineContextSpecArgs{
MemoryBankConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigArgs{
GenerationConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs{
Model: pulumi.Sprintf("projects/%v/locations/us-central1/publishers/google/models/gemini-2.5-flash", project.ProjectId),
},
SimilaritySearchConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs{
EmbeddingModel: pulumi.Sprintf("projects/%v/locations/us-central1/publishers/google/models/text-embedding-005", project.ProjectId),
},
DisableMemoryRevisions: pulumi.Bool(false),
CustomizationConfigs: vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs{
ScopeKeys: pulumi.StringArray{
pulumi.String("user_id"),
},
EnableThirdPersonMemories: pulumi.Bool(true),
ConsolidationConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs{
RevisionsPerCandidateCount: pulumi.Int(1),
},
MemoryTopics: vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs{
ManagedMemoryTopic: &vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs{
ManagedTopicEnum: pulumi.String("USER_PREFERENCES"),
},
},
},
},
&vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs{
ScopeKeys: pulumi.StringArray{
pulumi.String("user_id"),
pulumi.String("session_id"),
},
EnableThirdPersonMemories: pulumi.Bool(true),
MemoryTopics: vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs{
CustomMemoryTopic: &vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs{
Label: pulumi.String("session_scratchpad"),
Description: pulumi.String("Active consideration details, recent queries, and temporary workflow state."),
},
},
},
},
},
StructuredMemoryConfigs: vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs{
ScopeKeys: pulumi.StringArray{
pulumi.String("user_id"),
},
SchemaConfigs: vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs{
Id: pulumi.String("user-profile"),
MemorySchema: pulumi.String(json0),
},
},
},
&vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs{
ScopeKeys: pulumi.StringArray{
pulumi.String("user_id"),
pulumi.String("session_id"),
},
SchemaConfigs: vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs{
Id: pulumi.String("conversation-summary"),
MemorySchema: pulumi.String(json1),
},
},
},
},
TtlConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs{
DefaultTtl: pulumi.String("86400s"),
},
},
},
})
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 project = Gcp.Organizations.GetProject.Invoke();
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "re-ctx-spec",
Description = "Reasoning engine with context spec",
Region = "us-central1",
TrafficConfig = new Gcp.Vertex.Inputs.AiReasoningEngineTrafficConfigArgs
{
TrafficSplitAlwaysLatest = null,
},
ContextSpec = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecArgs
{
MemoryBankConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigArgs
{
GenerationConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs
{
Model = $"projects/{project.Apply(getProjectResult => getProjectResult.ProjectId)}/locations/us-central1/publishers/google/models/gemini-2.5-flash",
},
SimilaritySearchConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs
{
EmbeddingModel = $"projects/{project.Apply(getProjectResult => getProjectResult.ProjectId)}/locations/us-central1/publishers/google/models/text-embedding-005",
},
DisableMemoryRevisions = false,
CustomizationConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs
{
ScopeKeys = new[]
{
"user_id",
},
EnableThirdPersonMemories = true,
ConsolidationConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs
{
RevisionsPerCandidateCount = 1,
},
MemoryTopics = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs
{
ManagedMemoryTopic = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs
{
ManagedTopicEnum = "USER_PREFERENCES",
},
},
},
},
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs
{
ScopeKeys = new[]
{
"user_id",
"session_id",
},
EnableThirdPersonMemories = true,
MemoryTopics = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs
{
CustomMemoryTopic = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs
{
Label = "session_scratchpad",
Description = "Active consideration details, recent queries, and temporary workflow state.",
},
},
},
},
},
StructuredMemoryConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs
{
ScopeKeys = new[]
{
"user_id",
},
SchemaConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs
{
Id = "user-profile",
MemorySchema = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["type"] = "OBJECT",
["properties"] = new Dictionary<string, object?>
{
["name"] = new Dictionary<string, object?>
{
["type"] = "STRING",
["description"] = "Name of the user.",
},
["technical_stack"] = new Dictionary<string, object?>
{
["type"] = "STRING",
["description"] = "Comma-separated list tools or languages used by the user.",
},
["primary_goal"] = new Dictionary<string, object?>
{
["type"] = "STRING",
["description"] = "The main objective the user is pursuing.",
},
["expertise_level"] = new Dictionary<string, object?>
{
["type"] = "STRING",
["description"] = "Current skill level (e.g., Junior, Senior).",
},
["job_status"] = new Dictionary<string, object?>
{
["type"] = "STRING",
["description"] = "The job status of the individual",
["enum"] = new[]
{
"unemployed",
"part_time",
"full_time",
"student",
},
},
},
}),
},
},
},
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs
{
ScopeKeys = new[]
{
"user_id",
"session_id",
},
SchemaConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs
{
Id = "conversation-summary",
MemorySchema = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["type"] = "OBJECT",
["properties"] = new Dictionary<string, object?>
{
["main_topic"] = new Dictionary<string, object?>
{
["type"] = "STRING",
["description"] = "The primary topic of this specific chat session.",
},
["status"] = new Dictionary<string, object?>
{
["type"] = "STRING",
["description"] = "Current resolution state of the discussion.",
["enum"] = new[]
{
"open",
"in_progress",
"resolved",
},
},
},
}),
},
},
},
},
TtlConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs
{
DefaultTtl = "86400s",
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineTrafficConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("re-ctx-spec")
.description("Reasoning engine with context spec")
.region("us-central1")
.trafficConfig(AiReasoningEngineTrafficConfigArgs.builder()
.trafficSplitAlwaysLatest(AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs.builder()
.build())
.build())
.contextSpec(AiReasoningEngineContextSpecArgs.builder()
.memoryBankConfig(AiReasoningEngineContextSpecMemoryBankConfigArgs.builder()
.generationConfig(AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs.builder()
.model(String.format("projects/%s/locations/us-central1/publishers/google/models/gemini-2.5-flash", project.projectId()))
.build())
.similaritySearchConfig(AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs.builder()
.embeddingModel(String.format("projects/%s/locations/us-central1/publishers/google/models/text-embedding-005", project.projectId()))
.build())
.disableMemoryRevisions(false)
.customizationConfigs(
AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs.builder()
.scopeKeys("user_id")
.enableThirdPersonMemories(true)
.consolidationConfig(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs.builder()
.revisionsPerCandidateCount(1)
.build())
.memoryTopics(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs.builder()
.managedMemoryTopic(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs.builder()
.managedTopicEnum("USER_PREFERENCES")
.build())
.build())
.build(),
AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs.builder()
.scopeKeys(
"user_id",
"session_id")
.enableThirdPersonMemories(true)
.memoryTopics(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs.builder()
.customMemoryTopic(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs.builder()
.label("session_scratchpad")
.description("Active consideration details, recent queries, and temporary workflow state.")
.build())
.build())
.build())
.structuredMemoryConfigs(
AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs.builder()
.scopeKeys("user_id")
.schemaConfigs(AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs.builder()
.id("user-profile")
.memorySchema(serializeJson(
jsonObject(
jsonProperty("type", "OBJECT"),
jsonProperty("properties", jsonObject(
jsonProperty("name", jsonObject(
jsonProperty("type", "STRING"),
jsonProperty("description", "Name of the user.")
)),
jsonProperty("technical_stack", jsonObject(
jsonProperty("type", "STRING"),
jsonProperty("description", "Comma-separated list tools or languages used by the user.")
)),
jsonProperty("primary_goal", jsonObject(
jsonProperty("type", "STRING"),
jsonProperty("description", "The main objective the user is pursuing.")
)),
jsonProperty("expertise_level", jsonObject(
jsonProperty("type", "STRING"),
jsonProperty("description", "Current skill level (e.g., Junior, Senior).")
)),
jsonProperty("job_status", jsonObject(
jsonProperty("type", "STRING"),
jsonProperty("description", "The job status of the individual"),
jsonProperty("enum", jsonArray(
"unemployed",
"part_time",
"full_time",
"student"
))
))
))
)))
.build())
.build(),
AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs.builder()
.scopeKeys(
"user_id",
"session_id")
.schemaConfigs(AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs.builder()
.id("conversation-summary")
.memorySchema(serializeJson(
jsonObject(
jsonProperty("type", "OBJECT"),
jsonProperty("properties", jsonObject(
jsonProperty("main_topic", jsonObject(
jsonProperty("type", "STRING"),
jsonProperty("description", "The primary topic of this specific chat session.")
)),
jsonProperty("status", jsonObject(
jsonProperty("type", "STRING"),
jsonProperty("description", "Current resolution state of the discussion."),
jsonProperty("enum", jsonArray(
"open",
"in_progress",
"resolved"
))
))
))
)))
.build())
.build())
.ttlConfig(AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs.builder()
.defaultTtl("86400s")
.build())
.build())
.build())
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: re-ctx-spec
description: Reasoning engine with context spec
region: us-central1
trafficConfig:
trafficSplitAlwaysLatest: {}
contextSpec:
memoryBankConfig:
generationConfig:
model: projects/${project.projectId}/locations/us-central1/publishers/google/models/gemini-2.5-flash
similaritySearchConfig:
embeddingModel: projects/${project.projectId}/locations/us-central1/publishers/google/models/text-embedding-005
disableMemoryRevisions: false
customizationConfigs:
- scopeKeys:
- user_id
enableThirdPersonMemories: true
consolidationConfig:
revisionsPerCandidateCount: 1
memoryTopics:
- managedMemoryTopic:
managedTopicEnum: USER_PREFERENCES
- scopeKeys:
- user_id
- session_id
enableThirdPersonMemories: true
memoryTopics:
- customMemoryTopic:
label: session_scratchpad
description: Active consideration details, recent queries, and temporary workflow state.
structuredMemoryConfigs:
- scopeKeys:
- user_id
schemaConfigs:
- id: user-profile
memorySchema:
fn::toJSON:
type: OBJECT
properties:
name:
type: STRING
description: Name of the user.
technical_stack:
type: STRING
description: Comma-separated list tools or languages used by the user.
primary_goal:
type: STRING
description: The main objective the user is pursuing.
expertise_level:
type: STRING
description: Current skill level (e.g., Junior, Senior).
job_status:
type: STRING
description: The job status of the individual
enum:
- unemployed
- part_time
- full_time
- student
- scopeKeys:
- user_id
- session_id
schemaConfigs:
- id: conversation-summary
memorySchema:
fn::toJSON:
type: OBJECT
properties:
main_topic:
type: STRING
description: The primary topic of this specific chat session.
status:
type: STRING
description: Current resolution state of the discussion.
enum:
- open
- in_progress
- resolved
ttlConfig:
defaultTtl: 86400s
variables:
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
data "gcp_organizations_getproject" "project" {
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
display_name = "re-ctx-spec"
description = "Reasoning engine with context spec"
region = "us-central1"
traffic_config = {
traffic_split_always_latest = {}
}
context_spec = {
memory_bank_config = {
generation_config = {
model ="projects/${data.gcp_organizations_getproject.project.project_id}/locations/us-central1/publishers/google/models/gemini-2.5-flash"
}
similarity_search_config = {
embedding_model ="projects/${data.gcp_organizations_getproject.project.project_id}/locations/us-central1/publishers/google/models/text-embedding-005"
}
disable_memory_revisions = false
customization_configs = [{
"scopeKeys" = ["user_id"]
"enableThirdPersonMemories" = true
"consolidationConfig" = {
"revisionsPerCandidateCount" = 1
}
"memoryTopics" = [{
"managedMemoryTopic" = {
"managedTopicEnum" = "USER_PREFERENCES"
}
}]
}, {
"scopeKeys" = ["user_id", "session_id"]
"enableThirdPersonMemories" = true
"memoryTopics" = [{
"customMemoryTopic" = {
"label" = "session_scratchpad"
"description" = "Active consideration details, recent queries, and temporary workflow state."
}
}]
}]
structured_memory_configs = [{
"scopeKeys" = ["user_id"]
"schemaConfigs" = [{
"id" = "user-profile"
"memorySchema" = jsonencode({
"type" = "OBJECT"
"properties" = {
"name" = {
"type" = "STRING"
"description" = "Name of the user."
}
"technical_stack" = {
"type" = "STRING"
"description" = "Comma-separated list tools or languages used by the user."
}
"primary_goal" = {
"type" = "STRING"
"description" = "The main objective the user is pursuing."
}
"expertise_level" = {
"type" = "STRING"
"description" = "Current skill level (e.g., Junior, Senior)."
}
"job_status" = {
"type" = "STRING"
"description" = "The job status of the individual"
"enum" = ["unemployed", "part_time", "full_time", "student"]
}
}
})
}]
}, {
"scopeKeys" = ["user_id", "session_id"]
"schemaConfigs" = [{
"id" = "conversation-summary"
"memorySchema" = jsonencode({
"type" = "OBJECT"
"properties" = {
"main_topic" = {
"type" = "STRING"
"description" = "The primary topic of this specific chat session."
}
"status" = {
"type" = "STRING"
"description" = "Current resolution state of the discussion."
"enum" = ["open", "in_progress", "resolved"]
}
}
})
}]
}]
ttl_config = {
default_ttl = "86400s"
}
}
}
}
Vertex Ai Reasoning Engine Granular Ttl
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const project = gcp.organizations.getProject({});
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "re-gran-ttl",
description: "Reasoning engine with granular ttl",
region: "us-central1",
contextSpec: {
memoryBankConfig: {
generationConfig: {
model: project.then(project => `projects/${project.projectId}/locations/us-central1/publishers/google/models/gemini-2.5-flash`),
},
similaritySearchConfig: {
embeddingModel: project.then(project => `projects/${project.projectId}/locations/us-central1/publishers/google/models/text-embedding-005`),
},
disableMemoryRevisions: false,
ttlConfig: {
memoryRevisionDefaultTtl: "86400s",
granularTtlConfig: {
createTtl: "86400s",
generateCreatedTtl: "86400s",
generateUpdatedTtl: "86400s",
},
},
},
},
});
import pulumi
import pulumi_gcp as gcp
project = gcp.organizations.get_project()
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="re-gran-ttl",
description="Reasoning engine with granular ttl",
region="us-central1",
context_spec={
"memory_bank_config": {
"generation_config": {
"model": f"projects/{project.project_id}/locations/us-central1/publishers/google/models/gemini-2.5-flash",
},
"similarity_search_config": {
"embedding_model": f"projects/{project.project_id}/locations/us-central1/publishers/google/models/text-embedding-005",
},
"disable_memory_revisions": False,
"ttl_config": {
"memory_revision_default_ttl": "86400s",
"granular_ttl_config": {
"create_ttl": "86400s",
"generate_created_ttl": "86400s",
"generate_updated_ttl": "86400s",
},
},
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
_, err = vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("re-gran-ttl"),
Description: pulumi.String("Reasoning engine with granular ttl"),
Region: pulumi.String("us-central1"),
ContextSpec: &vertex.AiReasoningEngineContextSpecArgs{
MemoryBankConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigArgs{
GenerationConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs{
Model: pulumi.Sprintf("projects/%v/locations/us-central1/publishers/google/models/gemini-2.5-flash", project.ProjectId),
},
SimilaritySearchConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs{
EmbeddingModel: pulumi.Sprintf("projects/%v/locations/us-central1/publishers/google/models/text-embedding-005", project.ProjectId),
},
DisableMemoryRevisions: pulumi.Bool(false),
TtlConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs{
MemoryRevisionDefaultTtl: pulumi.String("86400s"),
GranularTtlConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs{
CreateTtl: pulumi.String("86400s"),
GenerateCreatedTtl: pulumi.String("86400s"),
GenerateUpdatedTtl: pulumi.String("86400s"),
},
},
},
},
})
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 project = Gcp.Organizations.GetProject.Invoke();
var reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "re-gran-ttl",
Description = "Reasoning engine with granular ttl",
Region = "us-central1",
ContextSpec = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecArgs
{
MemoryBankConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigArgs
{
GenerationConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs
{
Model = $"projects/{project.Apply(getProjectResult => getProjectResult.ProjectId)}/locations/us-central1/publishers/google/models/gemini-2.5-flash",
},
SimilaritySearchConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs
{
EmbeddingModel = $"projects/{project.Apply(getProjectResult => getProjectResult.ProjectId)}/locations/us-central1/publishers/google/models/text-embedding-005",
},
DisableMemoryRevisions = false,
TtlConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs
{
MemoryRevisionDefaultTtl = "86400s",
GranularTtlConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs
{
CreateTtl = "86400s",
GenerateCreatedTtl = "86400s",
GenerateUpdatedTtl = "86400s",
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("re-gran-ttl")
.description("Reasoning engine with granular ttl")
.region("us-central1")
.contextSpec(AiReasoningEngineContextSpecArgs.builder()
.memoryBankConfig(AiReasoningEngineContextSpecMemoryBankConfigArgs.builder()
.generationConfig(AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs.builder()
.model(String.format("projects/%s/locations/us-central1/publishers/google/models/gemini-2.5-flash", project.projectId()))
.build())
.similaritySearchConfig(AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs.builder()
.embeddingModel(String.format("projects/%s/locations/us-central1/publishers/google/models/text-embedding-005", project.projectId()))
.build())
.disableMemoryRevisions(false)
.ttlConfig(AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs.builder()
.memoryRevisionDefaultTtl("86400s")
.granularTtlConfig(AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs.builder()
.createTtl("86400s")
.generateCreatedTtl("86400s")
.generateUpdatedTtl("86400s")
.build())
.build())
.build())
.build())
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: re-gran-ttl
description: Reasoning engine with granular ttl
region: us-central1
contextSpec:
memoryBankConfig:
generationConfig:
model: projects/${project.projectId}/locations/us-central1/publishers/google/models/gemini-2.5-flash
similaritySearchConfig:
embeddingModel: projects/${project.projectId}/locations/us-central1/publishers/google/models/text-embedding-005
disableMemoryRevisions: false
ttlConfig:
memoryRevisionDefaultTtl: 86400s
granularTtlConfig:
createTtl: 86400s
generateCreatedTtl: 86400s
generateUpdatedTtl: 86400s
variables:
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
data "gcp_organizations_getproject" "project" {
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
display_name = "re-gran-ttl"
description = "Reasoning engine with granular ttl"
region = "us-central1"
context_spec = {
memory_bank_config = {
generation_config = {
model ="projects/${data.gcp_organizations_getproject.project.project_id}/locations/us-central1/publishers/google/models/gemini-2.5-flash"
}
similarity_search_config = {
embedding_model ="projects/${data.gcp_organizations_getproject.project.project_id}/locations/us-central1/publishers/google/models/text-embedding-005"
}
disable_memory_revisions = false
ttl_config = {
memory_revision_default_ttl = "86400s"
granular_ttl_config = {
create_ttl = "86400s"
generate_created_ttl = "86400s"
generate_updated_ttl = "86400s"
}
}
}
}
}
Vertex Ai Reasoning Engine Traffic Config
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const reasoningEngine = new gcp.vertex.AiReasoningEngine("reasoning_engine", {
displayName: "re-traffic-cfg",
description: "Reasoning engine with traffic config",
region: "us-central1",
spec: {
agentFramework: "langchain",
},
trafficConfig: {
trafficSplitAlwaysLatest: {},
},
});
import pulumi
import pulumi_gcp as gcp
reasoning_engine = gcp.vertex.AiReasoningEngine("reasoning_engine",
display_name="re-traffic-cfg",
description="Reasoning engine with traffic config",
region="us-central1",
spec={
"agent_framework": "langchain",
},
traffic_config={
"traffic_split_always_latest": {},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vertex.NewAiReasoningEngine(ctx, "reasoning_engine", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("re-traffic-cfg"),
Description: pulumi.String("Reasoning engine with traffic config"),
Region: pulumi.String("us-central1"),
Spec: &vertex.AiReasoningEngineSpecArgs{
AgentFramework: pulumi.String("langchain"),
},
TrafficConfig: &vertex.AiReasoningEngineTrafficConfigArgs{
TrafficSplitAlwaysLatest: &vertex.AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs{},
},
})
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 reasoningEngine = new Gcp.Vertex.AiReasoningEngine("reasoning_engine", new()
{
DisplayName = "re-traffic-cfg",
Description = "Reasoning engine with traffic config",
Region = "us-central1",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
AgentFramework = "langchain",
},
TrafficConfig = new Gcp.Vertex.Inputs.AiReasoningEngineTrafficConfigArgs
{
TrafficSplitAlwaysLatest = null,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.vertex.AiReasoningEngine;
import com.pulumi.gcp.vertex.AiReasoningEngineArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineSpecArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineTrafficConfigArgs;
import com.pulumi.gcp.vertex.inputs.AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var reasoningEngine = new AiReasoningEngine("reasoningEngine", AiReasoningEngineArgs.builder()
.displayName("re-traffic-cfg")
.description("Reasoning engine with traffic config")
.region("us-central1")
.spec(AiReasoningEngineSpecArgs.builder()
.agentFramework("langchain")
.build())
.trafficConfig(AiReasoningEngineTrafficConfigArgs.builder()
.trafficSplitAlwaysLatest(AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs.builder()
.build())
.build())
.build());
}
}
resources:
reasoningEngine:
type: gcp:vertex:AiReasoningEngine
name: reasoning_engine
properties:
displayName: re-traffic-cfg
description: Reasoning engine with traffic config
region: us-central1
spec:
agentFramework: langchain
trafficConfig:
trafficSplitAlwaysLatest: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
resource "gcp_vertex_aireasoningengine" "reasoning_engine" {
display_name = "re-traffic-cfg"
description = "Reasoning engine with traffic config"
region = "us-central1"
spec = {
agent_framework = "langchain"
}
traffic_config = {
traffic_split_always_latest = {}
}
}
Create AiReasoningEngine Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new AiReasoningEngine(name: string, args: AiReasoningEngineArgs, opts?: CustomResourceOptions);@overload
def AiReasoningEngine(resource_name: str,
args: AiReasoningEngineArgs,
opts: Optional[ResourceOptions] = None)
@overload
def AiReasoningEngine(resource_name: str,
opts: Optional[ResourceOptions] = None,
display_name: Optional[str] = None,
context_spec: Optional[AiReasoningEngineContextSpecArgs] = None,
deletion_policy: Optional[str] = None,
description: Optional[str] = None,
encryption_spec: Optional[AiReasoningEngineEncryptionSpecArgs] = None,
labels: Optional[Mapping[str, str]] = None,
project: Optional[str] = None,
region: Optional[str] = None,
spec: Optional[AiReasoningEngineSpecArgs] = None,
traffic_config: Optional[AiReasoningEngineTrafficConfigArgs] = None)func NewAiReasoningEngine(ctx *Context, name string, args AiReasoningEngineArgs, opts ...ResourceOption) (*AiReasoningEngine, error)public AiReasoningEngine(string name, AiReasoningEngineArgs args, CustomResourceOptions? opts = null)
public AiReasoningEngine(String name, AiReasoningEngineArgs args)
public AiReasoningEngine(String name, AiReasoningEngineArgs args, CustomResourceOptions options)
type: gcp:vertex:AiReasoningEngine
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "gcp_vertex_ai_reasoning_engine" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args AiReasoningEngineArgs
- 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 AiReasoningEngineArgs
- 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 AiReasoningEngineArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args AiReasoningEngineArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args AiReasoningEngineArgs
- 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 aiReasoningEngineResource = new Gcp.Vertex.AiReasoningEngine("aiReasoningEngineResource", new()
{
DisplayName = "string",
ContextSpec = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecArgs
{
ExampleStoreConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecExampleStoreConfigArgs
{
SimilaritySearchConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecExampleStoreConfigSimilaritySearchConfigArgs
{
EmbeddingModel = "string",
},
},
MemoryBankConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigArgs
{
CustomizationConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs
{
ConsolidationConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs
{
RevisionsPerCandidateCount = 0,
},
EnableThirdPersonMemories = false,
MemoryTopics = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs
{
CustomMemoryTopic = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs
{
Description = "string",
Label = "string",
},
ManagedMemoryTopic = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs
{
ManagedTopicEnum = "string",
},
},
},
ScopeKeys = new[]
{
"string",
},
},
},
DisableMemoryRevisions = false,
GenerationConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs
{
Model = "string",
},
SimilaritySearchConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs
{
EmbeddingModel = "string",
},
StructuredMemoryConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs
{
SchemaConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs
{
Id = "string",
MemorySchema = "string",
},
},
ScopeKeys = new[]
{
"string",
},
},
},
TtlConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs
{
DefaultTtl = "string",
GranularTtlConfig = new Gcp.Vertex.Inputs.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs
{
CreateTtl = "string",
GenerateCreatedTtl = "string",
GenerateUpdatedTtl = "string",
},
MemoryRevisionDefaultTtl = "string",
},
},
},
DeletionPolicy = "string",
Description = "string",
EncryptionSpec = new Gcp.Vertex.Inputs.AiReasoningEngineEncryptionSpecArgs
{
KmsKeyName = "string",
},
Labels =
{
{ "string", "string" },
},
Project = "string",
Region = "string",
Spec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecArgs
{
AgentCard = "string",
AgentFramework = "string",
BuildSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecBuildSpecArgs
{
WorkerPool = "string",
},
ClassMethods = "string",
ContainerSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecContainerSpecArgs
{
ImageUri = "string",
},
DeploymentSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecArgs
{
AgentGatewayConfig = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigArgs
{
AgentToAnywhereConfig = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigAgentToAnywhereConfigArgs
{
AgentGateway = "string",
},
ClientToAgentConfig = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigClientToAgentConfigArgs
{
AgentGateway = "string",
},
},
AgentServerMode = "string",
ContainerConcurrency = 0,
DedicatedIngressEndpointEnabled = false,
Envs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecEnvArgs
{
Name = "string",
Value = "string",
},
},
KeepAliveProbe = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecKeepAliveProbeArgs
{
HttpGet = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecKeepAliveProbeHttpGetArgs
{
Path = "string",
Port = 0,
},
MaxSeconds = 0,
},
MaxInstances = 0,
MinInstances = 0,
PscInterfaceConfig = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs
{
DnsPeeringConfigs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs
{
Domain = "string",
TargetNetwork = "string",
TargetProject = "string",
},
},
NetworkAttachment = "string",
},
ResourceLimits =
{
{ "string", "string" },
},
SecretEnvs = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvArgs
{
Name = "string",
SecretRef = new Gcp.Vertex.Inputs.AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs
{
Secret = "string",
Version = "string",
},
},
},
},
EffectiveIdentity = "string",
ExampleStore = "string",
IdentityType = "string",
PackageSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecPackageSpecArgs
{
DependencyFilesGcsUri = "string",
PickleObjectGcsUri = "string",
PythonVersion = "string",
RequirementsGcsUri = "string",
},
ServiceAccount = "string",
SourceCodeSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecArgs
{
AgentConfigSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceArgs
{
AdkConfig = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceAdkConfigArgs
{
JsonConfig = "string",
},
InlineSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceInlineSourceArgs
{
SourceArchive = "string",
},
},
DeveloperConnectSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs
{
Config = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs
{
Dir = "string",
GitRepositoryLink = "string",
Revision = "string",
},
},
ImageSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecImageSpecArgs
{
BuildArgs =
{
{ "string", "string" },
},
},
InlineSource = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs
{
SourceArchive = "string",
},
PythonSpec = new Gcp.Vertex.Inputs.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs
{
EntrypointModule = "string",
EntrypointObject = "string",
RequirementsFile = "string",
Version = "string",
},
},
},
TrafficConfig = new Gcp.Vertex.Inputs.AiReasoningEngineTrafficConfigArgs
{
TrafficSplitAlwaysLatest = null,
TrafficSplitManual = new Gcp.Vertex.Inputs.AiReasoningEngineTrafficConfigTrafficSplitManualArgs
{
Targets = new[]
{
new Gcp.Vertex.Inputs.AiReasoningEngineTrafficConfigTrafficSplitManualTargetArgs
{
Percent = 0,
RuntimeRevisionName = "string",
},
},
},
},
});
example, err := vertex.NewAiReasoningEngine(ctx, "aiReasoningEngineResource", &vertex.AiReasoningEngineArgs{
DisplayName: pulumi.String("string"),
ContextSpec: &vertex.AiReasoningEngineContextSpecArgs{
ExampleStoreConfig: &vertex.AiReasoningEngineContextSpecExampleStoreConfigArgs{
SimilaritySearchConfig: &vertex.AiReasoningEngineContextSpecExampleStoreConfigSimilaritySearchConfigArgs{
EmbeddingModel: pulumi.String("string"),
},
},
MemoryBankConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigArgs{
CustomizationConfigs: vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs{
ConsolidationConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs{
RevisionsPerCandidateCount: pulumi.Int(0),
},
EnableThirdPersonMemories: pulumi.Bool(false),
MemoryTopics: vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs{
CustomMemoryTopic: &vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs{
Description: pulumi.String("string"),
Label: pulumi.String("string"),
},
ManagedMemoryTopic: &vertex.AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs{
ManagedTopicEnum: pulumi.String("string"),
},
},
},
ScopeKeys: pulumi.StringArray{
pulumi.String("string"),
},
},
},
DisableMemoryRevisions: pulumi.Bool(false),
GenerationConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs{
Model: pulumi.String("string"),
},
SimilaritySearchConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs{
EmbeddingModel: pulumi.String("string"),
},
StructuredMemoryConfigs: vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs{
SchemaConfigs: vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArray{
&vertex.AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs{
Id: pulumi.String("string"),
MemorySchema: pulumi.String("string"),
},
},
ScopeKeys: pulumi.StringArray{
pulumi.String("string"),
},
},
},
TtlConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs{
DefaultTtl: pulumi.String("string"),
GranularTtlConfig: &vertex.AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs{
CreateTtl: pulumi.String("string"),
GenerateCreatedTtl: pulumi.String("string"),
GenerateUpdatedTtl: pulumi.String("string"),
},
MemoryRevisionDefaultTtl: pulumi.String("string"),
},
},
},
DeletionPolicy: pulumi.String("string"),
Description: pulumi.String("string"),
EncryptionSpec: &vertex.AiReasoningEngineEncryptionSpecArgs{
KmsKeyName: pulumi.String("string"),
},
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
Project: pulumi.String("string"),
Region: pulumi.String("string"),
Spec: &vertex.AiReasoningEngineSpecArgs{
AgentCard: pulumi.String("string"),
AgentFramework: pulumi.String("string"),
BuildSpec: &vertex.AiReasoningEngineSpecBuildSpecArgs{
WorkerPool: pulumi.String("string"),
},
ClassMethods: pulumi.String("string"),
ContainerSpec: &vertex.AiReasoningEngineSpecContainerSpecArgs{
ImageUri: pulumi.String("string"),
},
DeploymentSpec: &vertex.AiReasoningEngineSpecDeploymentSpecArgs{
AgentGatewayConfig: &vertex.AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigArgs{
AgentToAnywhereConfig: &vertex.AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigAgentToAnywhereConfigArgs{
AgentGateway: pulumi.String("string"),
},
ClientToAgentConfig: &vertex.AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigClientToAgentConfigArgs{
AgentGateway: pulumi.String("string"),
},
},
AgentServerMode: pulumi.String("string"),
ContainerConcurrency: pulumi.Int(0),
DedicatedIngressEndpointEnabled: pulumi.Bool(false),
Envs: vertex.AiReasoningEngineSpecDeploymentSpecEnvArray{
&vertex.AiReasoningEngineSpecDeploymentSpecEnvArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
KeepAliveProbe: &vertex.AiReasoningEngineSpecDeploymentSpecKeepAliveProbeArgs{
HttpGet: &vertex.AiReasoningEngineSpecDeploymentSpecKeepAliveProbeHttpGetArgs{
Path: pulumi.String("string"),
Port: pulumi.Int(0),
},
MaxSeconds: pulumi.Int(0),
},
MaxInstances: pulumi.Int(0),
MinInstances: pulumi.Int(0),
PscInterfaceConfig: &vertex.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs{
DnsPeeringConfigs: vertex.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArray{
&vertex.AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs{
Domain: pulumi.String("string"),
TargetNetwork: pulumi.String("string"),
TargetProject: pulumi.String("string"),
},
},
NetworkAttachment: pulumi.String("string"),
},
ResourceLimits: pulumi.StringMap{
"string": pulumi.String("string"),
},
SecretEnvs: vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvArray{
&vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvArgs{
Name: pulumi.String("string"),
SecretRef: &vertex.AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs{
Secret: pulumi.String("string"),
Version: pulumi.String("string"),
},
},
},
},
EffectiveIdentity: pulumi.String("string"),
ExampleStore: pulumi.String("string"),
IdentityType: pulumi.String("string"),
PackageSpec: &vertex.AiReasoningEngineSpecPackageSpecArgs{
DependencyFilesGcsUri: pulumi.String("string"),
PickleObjectGcsUri: pulumi.String("string"),
PythonVersion: pulumi.String("string"),
RequirementsGcsUri: pulumi.String("string"),
},
ServiceAccount: pulumi.String("string"),
SourceCodeSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecArgs{
AgentConfigSource: &vertex.AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceArgs{
AdkConfig: &vertex.AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceAdkConfigArgs{
JsonConfig: pulumi.String("string"),
},
InlineSource: &vertex.AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceInlineSourceArgs{
SourceArchive: pulumi.String("string"),
},
},
DeveloperConnectSource: &vertex.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs{
Config: &vertex.AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs{
Dir: pulumi.String("string"),
GitRepositoryLink: pulumi.String("string"),
Revision: pulumi.String("string"),
},
},
ImageSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecImageSpecArgs{
BuildArgs: pulumi.StringMap{
"string": pulumi.String("string"),
},
},
InlineSource: &vertex.AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs{
SourceArchive: pulumi.String("string"),
},
PythonSpec: &vertex.AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs{
EntrypointModule: pulumi.String("string"),
EntrypointObject: pulumi.String("string"),
RequirementsFile: pulumi.String("string"),
Version: pulumi.String("string"),
},
},
},
TrafficConfig: &vertex.AiReasoningEngineTrafficConfigArgs{
TrafficSplitAlwaysLatest: &vertex.AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs{},
TrafficSplitManual: &vertex.AiReasoningEngineTrafficConfigTrafficSplitManualArgs{
Targets: vertex.AiReasoningEngineTrafficConfigTrafficSplitManualTargetArray{
&vertex.AiReasoningEngineTrafficConfigTrafficSplitManualTargetArgs{
Percent: pulumi.Int(0),
RuntimeRevisionName: pulumi.String("string"),
},
},
},
},
})
resource "gcp_vertex_ai_reasoning_engine" "aiReasoningEngineResource" {
lifecycle {
create_before_destroy = true
}
display_name = "string"
context_spec = {
example_store_config = {
similarity_search_config = {
embedding_model = "string"
}
}
memory_bank_config = {
customization_configs = [{
consolidation_config = {
revisions_per_candidate_count = 0
}
enable_third_person_memories = false
memory_topics = [{
custom_memory_topic = {
description = "string"
label = "string"
}
managed_memory_topic = {
managed_topic_enum = "string"
}
}]
scope_keys = ["string"]
}]
disable_memory_revisions = false
generation_config = {
model = "string"
}
similarity_search_config = {
embedding_model = "string"
}
structured_memory_configs = [{
schema_configs = [{
id = "string"
memory_schema = "string"
}]
scope_keys = ["string"]
}]
ttl_config = {
default_ttl = "string"
granular_ttl_config = {
create_ttl = "string"
generate_created_ttl = "string"
generate_updated_ttl = "string"
}
memory_revision_default_ttl = "string"
}
}
}
deletion_policy = "string"
description = "string"
encryption_spec = {
kms_key_name = "string"
}
labels = {
"string" = "string"
}
project = "string"
region = "string"
spec = {
agent_card = "string"
agent_framework = "string"
build_spec = {
worker_pool = "string"
}
class_methods = "string"
container_spec = {
image_uri = "string"
}
deployment_spec = {
agent_gateway_config = {
agent_to_anywhere_config = {
agent_gateway = "string"
}
client_to_agent_config = {
agent_gateway = "string"
}
}
agent_server_mode = "string"
container_concurrency = 0
dedicated_ingress_endpoint_enabled = false
envs = [{
name = "string"
value = "string"
}]
keep_alive_probe = {
http_get = {
path = "string"
port = 0
}
max_seconds = 0
}
max_instances = 0
min_instances = 0
psc_interface_config = {
dns_peering_configs = [{
domain = "string"
target_network = "string"
target_project = "string"
}]
network_attachment = "string"
}
resource_limits = {
"string" = "string"
}
secret_envs = [{
name = "string"
secret_ref = {
secret = "string"
version = "string"
}
}]
}
effective_identity = "string"
example_store = "string"
identity_type = "string"
package_spec = {
dependency_files_gcs_uri = "string"
pickle_object_gcs_uri = "string"
python_version = "string"
requirements_gcs_uri = "string"
}
service_account = "string"
source_code_spec = {
agent_config_source = {
adk_config = {
json_config = "string"
}
inline_source = {
source_archive = "string"
}
}
developer_connect_source = {
config = {
dir = "string"
git_repository_link = "string"
revision = "string"
}
}
image_spec = {
build_args = {
"string" = "string"
}
}
inline_source = {
source_archive = "string"
}
python_spec = {
entrypoint_module = "string"
entrypoint_object = "string"
requirements_file = "string"
version = "string"
}
}
}
traffic_config = {
traffic_split_always_latest = {}
traffic_split_manual = {
targets = [{
percent = 0
runtime_revision_name = "string"
}]
}
}
}
var aiReasoningEngineResource = new AiReasoningEngine("aiReasoningEngineResource", AiReasoningEngineArgs.builder()
.displayName("string")
.contextSpec(AiReasoningEngineContextSpecArgs.builder()
.exampleStoreConfig(AiReasoningEngineContextSpecExampleStoreConfigArgs.builder()
.similaritySearchConfig(AiReasoningEngineContextSpecExampleStoreConfigSimilaritySearchConfigArgs.builder()
.embeddingModel("string")
.build())
.build())
.memoryBankConfig(AiReasoningEngineContextSpecMemoryBankConfigArgs.builder()
.customizationConfigs(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs.builder()
.consolidationConfig(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs.builder()
.revisionsPerCandidateCount(0)
.build())
.enableThirdPersonMemories(false)
.memoryTopics(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs.builder()
.customMemoryTopic(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs.builder()
.description("string")
.label("string")
.build())
.managedMemoryTopic(AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs.builder()
.managedTopicEnum("string")
.build())
.build())
.scopeKeys("string")
.build())
.disableMemoryRevisions(false)
.generationConfig(AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs.builder()
.model("string")
.build())
.similaritySearchConfig(AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs.builder()
.embeddingModel("string")
.build())
.structuredMemoryConfigs(AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs.builder()
.schemaConfigs(AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs.builder()
.id("string")
.memorySchema("string")
.build())
.scopeKeys("string")
.build())
.ttlConfig(AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs.builder()
.defaultTtl("string")
.granularTtlConfig(AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs.builder()
.createTtl("string")
.generateCreatedTtl("string")
.generateUpdatedTtl("string")
.build())
.memoryRevisionDefaultTtl("string")
.build())
.build())
.build())
.deletionPolicy("string")
.description("string")
.encryptionSpec(AiReasoningEngineEncryptionSpecArgs.builder()
.kmsKeyName("string")
.build())
.labels(Map.of("string", "string"))
.project("string")
.region("string")
.spec(AiReasoningEngineSpecArgs.builder()
.agentCard("string")
.agentFramework("string")
.buildSpec(AiReasoningEngineSpecBuildSpecArgs.builder()
.workerPool("string")
.build())
.classMethods("string")
.containerSpec(AiReasoningEngineSpecContainerSpecArgs.builder()
.imageUri("string")
.build())
.deploymentSpec(AiReasoningEngineSpecDeploymentSpecArgs.builder()
.agentGatewayConfig(AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigArgs.builder()
.agentToAnywhereConfig(AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigAgentToAnywhereConfigArgs.builder()
.agentGateway("string")
.build())
.clientToAgentConfig(AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigClientToAgentConfigArgs.builder()
.agentGateway("string")
.build())
.build())
.agentServerMode("string")
.containerConcurrency(0)
.dedicatedIngressEndpointEnabled(false)
.envs(AiReasoningEngineSpecDeploymentSpecEnvArgs.builder()
.name("string")
.value("string")
.build())
.keepAliveProbe(AiReasoningEngineSpecDeploymentSpecKeepAliveProbeArgs.builder()
.httpGet(AiReasoningEngineSpecDeploymentSpecKeepAliveProbeHttpGetArgs.builder()
.path("string")
.port(0)
.build())
.maxSeconds(0)
.build())
.maxInstances(0)
.minInstances(0)
.pscInterfaceConfig(AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs.builder()
.dnsPeeringConfigs(AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs.builder()
.domain("string")
.targetNetwork("string")
.targetProject("string")
.build())
.networkAttachment("string")
.build())
.resourceLimits(Map.of("string", "string"))
.secretEnvs(AiReasoningEngineSpecDeploymentSpecSecretEnvArgs.builder()
.name("string")
.secretRef(AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs.builder()
.secret("string")
.version("string")
.build())
.build())
.build())
.effectiveIdentity("string")
.exampleStore("string")
.identityType("string")
.packageSpec(AiReasoningEngineSpecPackageSpecArgs.builder()
.dependencyFilesGcsUri("string")
.pickleObjectGcsUri("string")
.pythonVersion("string")
.requirementsGcsUri("string")
.build())
.serviceAccount("string")
.sourceCodeSpec(AiReasoningEngineSpecSourceCodeSpecArgs.builder()
.agentConfigSource(AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceArgs.builder()
.adkConfig(AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceAdkConfigArgs.builder()
.jsonConfig("string")
.build())
.inlineSource(AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceInlineSourceArgs.builder()
.sourceArchive("string")
.build())
.build())
.developerConnectSource(AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs.builder()
.config(AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs.builder()
.dir("string")
.gitRepositoryLink("string")
.revision("string")
.build())
.build())
.imageSpec(AiReasoningEngineSpecSourceCodeSpecImageSpecArgs.builder()
.buildArgs(Map.of("string", "string"))
.build())
.inlineSource(AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs.builder()
.sourceArchive("string")
.build())
.pythonSpec(AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs.builder()
.entrypointModule("string")
.entrypointObject("string")
.requirementsFile("string")
.version("string")
.build())
.build())
.build())
.trafficConfig(AiReasoningEngineTrafficConfigArgs.builder()
.trafficSplitAlwaysLatest(AiReasoningEngineTrafficConfigTrafficSplitAlwaysLatestArgs.builder()
.build())
.trafficSplitManual(AiReasoningEngineTrafficConfigTrafficSplitManualArgs.builder()
.targets(AiReasoningEngineTrafficConfigTrafficSplitManualTargetArgs.builder()
.percent(0)
.runtimeRevisionName("string")
.build())
.build())
.build())
.build());
ai_reasoning_engine_resource = gcp.vertex.AiReasoningEngine("aiReasoningEngineResource",
display_name="string",
context_spec={
"example_store_config": {
"similarity_search_config": {
"embedding_model": "string",
},
},
"memory_bank_config": {
"customization_configs": [{
"consolidation_config": {
"revisions_per_candidate_count": 0,
},
"enable_third_person_memories": False,
"memory_topics": [{
"custom_memory_topic": {
"description": "string",
"label": "string",
},
"managed_memory_topic": {
"managed_topic_enum": "string",
},
}],
"scope_keys": ["string"],
}],
"disable_memory_revisions": False,
"generation_config": {
"model": "string",
},
"similarity_search_config": {
"embedding_model": "string",
},
"structured_memory_configs": [{
"schema_configs": [{
"id": "string",
"memory_schema": "string",
}],
"scope_keys": ["string"],
}],
"ttl_config": {
"default_ttl": "string",
"granular_ttl_config": {
"create_ttl": "string",
"generate_created_ttl": "string",
"generate_updated_ttl": "string",
},
"memory_revision_default_ttl": "string",
},
},
},
deletion_policy="string",
description="string",
encryption_spec={
"kms_key_name": "string",
},
labels={
"string": "string",
},
project="string",
region="string",
spec={
"agent_card": "string",
"agent_framework": "string",
"build_spec": {
"worker_pool": "string",
},
"class_methods": "string",
"container_spec": {
"image_uri": "string",
},
"deployment_spec": {
"agent_gateway_config": {
"agent_to_anywhere_config": {
"agent_gateway": "string",
},
"client_to_agent_config": {
"agent_gateway": "string",
},
},
"agent_server_mode": "string",
"container_concurrency": 0,
"dedicated_ingress_endpoint_enabled": False,
"envs": [{
"name": "string",
"value": "string",
}],
"keep_alive_probe": {
"http_get": {
"path": "string",
"port": 0,
},
"max_seconds": 0,
},
"max_instances": 0,
"min_instances": 0,
"psc_interface_config": {
"dns_peering_configs": [{
"domain": "string",
"target_network": "string",
"target_project": "string",
}],
"network_attachment": "string",
},
"resource_limits": {
"string": "string",
},
"secret_envs": [{
"name": "string",
"secret_ref": {
"secret": "string",
"version": "string",
},
}],
},
"effective_identity": "string",
"example_store": "string",
"identity_type": "string",
"package_spec": {
"dependency_files_gcs_uri": "string",
"pickle_object_gcs_uri": "string",
"python_version": "string",
"requirements_gcs_uri": "string",
},
"service_account": "string",
"source_code_spec": {
"agent_config_source": {
"adk_config": {
"json_config": "string",
},
"inline_source": {
"source_archive": "string",
},
},
"developer_connect_source": {
"config": {
"dir": "string",
"git_repository_link": "string",
"revision": "string",
},
},
"image_spec": {
"build_args": {
"string": "string",
},
},
"inline_source": {
"source_archive": "string",
},
"python_spec": {
"entrypoint_module": "string",
"entrypoint_object": "string",
"requirements_file": "string",
"version": "string",
},
},
},
traffic_config={
"traffic_split_always_latest": {},
"traffic_split_manual": {
"targets": [{
"percent": 0,
"runtime_revision_name": "string",
}],
},
})
const aiReasoningEngineResource = new gcp.vertex.AiReasoningEngine("aiReasoningEngineResource", {
displayName: "string",
contextSpec: {
exampleStoreConfig: {
similaritySearchConfig: {
embeddingModel: "string",
},
},
memoryBankConfig: {
customizationConfigs: [{
consolidationConfig: {
revisionsPerCandidateCount: 0,
},
enableThirdPersonMemories: false,
memoryTopics: [{
customMemoryTopic: {
description: "string",
label: "string",
},
managedMemoryTopic: {
managedTopicEnum: "string",
},
}],
scopeKeys: ["string"],
}],
disableMemoryRevisions: false,
generationConfig: {
model: "string",
},
similaritySearchConfig: {
embeddingModel: "string",
},
structuredMemoryConfigs: [{
schemaConfigs: [{
id: "string",
memorySchema: "string",
}],
scopeKeys: ["string"],
}],
ttlConfig: {
defaultTtl: "string",
granularTtlConfig: {
createTtl: "string",
generateCreatedTtl: "string",
generateUpdatedTtl: "string",
},
memoryRevisionDefaultTtl: "string",
},
},
},
deletionPolicy: "string",
description: "string",
encryptionSpec: {
kmsKeyName: "string",
},
labels: {
string: "string",
},
project: "string",
region: "string",
spec: {
agentCard: "string",
agentFramework: "string",
buildSpec: {
workerPool: "string",
},
classMethods: "string",
containerSpec: {
imageUri: "string",
},
deploymentSpec: {
agentGatewayConfig: {
agentToAnywhereConfig: {
agentGateway: "string",
},
clientToAgentConfig: {
agentGateway: "string",
},
},
agentServerMode: "string",
containerConcurrency: 0,
dedicatedIngressEndpointEnabled: false,
envs: [{
name: "string",
value: "string",
}],
keepAliveProbe: {
httpGet: {
path: "string",
port: 0,
},
maxSeconds: 0,
},
maxInstances: 0,
minInstances: 0,
pscInterfaceConfig: {
dnsPeeringConfigs: [{
domain: "string",
targetNetwork: "string",
targetProject: "string",
}],
networkAttachment: "string",
},
resourceLimits: {
string: "string",
},
secretEnvs: [{
name: "string",
secretRef: {
secret: "string",
version: "string",
},
}],
},
effectiveIdentity: "string",
exampleStore: "string",
identityType: "string",
packageSpec: {
dependencyFilesGcsUri: "string",
pickleObjectGcsUri: "string",
pythonVersion: "string",
requirementsGcsUri: "string",
},
serviceAccount: "string",
sourceCodeSpec: {
agentConfigSource: {
adkConfig: {
jsonConfig: "string",
},
inlineSource: {
sourceArchive: "string",
},
},
developerConnectSource: {
config: {
dir: "string",
gitRepositoryLink: "string",
revision: "string",
},
},
imageSpec: {
buildArgs: {
string: "string",
},
},
inlineSource: {
sourceArchive: "string",
},
pythonSpec: {
entrypointModule: "string",
entrypointObject: "string",
requirementsFile: "string",
version: "string",
},
},
},
trafficConfig: {
trafficSplitAlwaysLatest: {},
trafficSplitManual: {
targets: [{
percent: 0,
runtimeRevisionName: "string",
}],
},
},
});
type: gcp:vertex:AiReasoningEngine
properties:
contextSpec:
exampleStoreConfig:
similaritySearchConfig:
embeddingModel: string
memoryBankConfig:
customizationConfigs:
- consolidationConfig:
revisionsPerCandidateCount: 0
enableThirdPersonMemories: false
memoryTopics:
- customMemoryTopic:
description: string
label: string
managedMemoryTopic:
managedTopicEnum: string
scopeKeys:
- string
disableMemoryRevisions: false
generationConfig:
model: string
similaritySearchConfig:
embeddingModel: string
structuredMemoryConfigs:
- schemaConfigs:
- id: string
memorySchema: string
scopeKeys:
- string
ttlConfig:
defaultTtl: string
granularTtlConfig:
createTtl: string
generateCreatedTtl: string
generateUpdatedTtl: string
memoryRevisionDefaultTtl: string
deletionPolicy: string
description: string
displayName: string
encryptionSpec:
kmsKeyName: string
labels:
string: string
project: string
region: string
spec:
agentCard: string
agentFramework: string
buildSpec:
workerPool: string
classMethods: string
containerSpec:
imageUri: string
deploymentSpec:
agentGatewayConfig:
agentToAnywhereConfig:
agentGateway: string
clientToAgentConfig:
agentGateway: string
agentServerMode: string
containerConcurrency: 0
dedicatedIngressEndpointEnabled: false
envs:
- name: string
value: string
keepAliveProbe:
httpGet:
path: string
port: 0
maxSeconds: 0
maxInstances: 0
minInstances: 0
pscInterfaceConfig:
dnsPeeringConfigs:
- domain: string
targetNetwork: string
targetProject: string
networkAttachment: string
resourceLimits:
string: string
secretEnvs:
- name: string
secretRef:
secret: string
version: string
effectiveIdentity: string
exampleStore: string
identityType: string
packageSpec:
dependencyFilesGcsUri: string
pickleObjectGcsUri: string
pythonVersion: string
requirementsGcsUri: string
serviceAccount: string
sourceCodeSpec:
agentConfigSource:
adkConfig:
jsonConfig: string
inlineSource:
sourceArchive: string
developerConnectSource:
config:
dir: string
gitRepositoryLink: string
revision: string
imageSpec:
buildArgs:
string: string
inlineSource:
sourceArchive: string
pythonSpec:
entrypointModule: string
entrypointObject: string
requirementsFile: string
version: string
trafficConfig:
trafficSplitAlwaysLatest: {}
trafficSplitManual:
targets:
- percent: 0
runtimeRevisionName: string
AiReasoningEngine 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 AiReasoningEngine resource accepts the following input properties:
- Display
Name string - The display name of the ReasoningEngine.
- Context
Spec AiReasoning Engine Context Spec - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- Deletion
Policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- Description string
- The description of the ReasoningEngine.
- Encryption
Spec AiReasoning Engine Encryption Spec - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- Labels Dictionary<string, string>
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Region string
- The region of the reasoning engine. eg us-central1
- Spec
Ai
Reasoning Engine Spec - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- Traffic
Config AiReasoning Engine Traffic Config (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.
- Display
Name string - The display name of the ReasoningEngine.
- Context
Spec AiReasoning Engine Context Spec Args - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- Deletion
Policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- Description string
- The description of the ReasoningEngine.
- Encryption
Spec AiReasoning Engine Encryption Spec Args - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- Labels map[string]string
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Region string
- The region of the reasoning engine. eg us-central1
- Spec
Ai
Reasoning Engine Spec Args - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- Traffic
Config AiReasoning Engine Traffic Config Args (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.
- display_
name string - The display name of the ReasoningEngine.
- context_
spec object - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- deletion_
policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description string
- The description of the ReasoningEngine.
- encryption_
spec object - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels map(string)
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region string
- The region of the reasoning engine. eg us-central1
- spec object
- Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic_
config object (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.
- display
Name String - The display name of the ReasoningEngine.
- context
Spec AiReasoning Engine Context Spec - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- deletion
Policy String Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description String
- The description of the ReasoningEngine.
- encryption
Spec AiReasoning Engine Encryption Spec - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels Map<String,String>
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region String
- The region of the reasoning engine. eg us-central1
- spec
Ai
Reasoning Engine Spec - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic
Config AiReasoning Engine Traffic Config (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.
- display
Name string - The display name of the ReasoningEngine.
- context
Spec AiReasoning Engine Context Spec - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- deletion
Policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description string
- The description of the ReasoningEngine.
- encryption
Spec AiReasoning Engine Encryption Spec - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels {[key: string]: string}
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region string
- The region of the reasoning engine. eg us-central1
- spec
Ai
Reasoning Engine Spec - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic
Config AiReasoning Engine Traffic Config (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.
- display_
name str - The display name of the ReasoningEngine.
- context_
spec AiReasoning Engine Context Spec Args - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- deletion_
policy str Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description str
- The description of the ReasoningEngine.
- encryption_
spec AiReasoning Engine Encryption Spec Args - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels Mapping[str, str]
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region str
- The region of the reasoning engine. eg us-central1
- spec
Ai
Reasoning Engine Spec Args - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic_
config AiReasoning Engine Traffic Config Args (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.
- display
Name String - The display name of the ReasoningEngine.
- context
Spec Property Map - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- deletion
Policy String Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description String
- The description of the ReasoningEngine.
- encryption
Spec Property Map - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels Map<String>
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region String
- The region of the reasoning engine. eg us-central1
- spec Property Map
- Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic
Config Property Map (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.
Outputs
All input properties are implicitly available as output properties. Additionally, the AiReasoningEngine resource produces the following output properties:
- Create
Time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Update
Time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Url string
- (Beta) Output only. The URL of the reasoning engine.
- Create
Time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Update
Time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Url string
- (Beta) Output only. The URL of the reasoning engine.
- create_
time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- effective_
labels map(string) - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- pulumi_
labels map(string) - The combination of labels configured directly on the resource and default labels configured on the provider.
- update_
time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url string
- (Beta) Output only. The URL of the reasoning engine.
- create
Time String - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- update
Time String - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url String
- (Beta) Output only. The URL of the reasoning engine.
- create
Time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- update
Time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url string
- (Beta) Output only. The URL of the reasoning engine.
- create_
time str - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- update_
time str - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url str
- (Beta) Output only. The URL of the reasoning engine.
- create
Time String - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- update
Time String - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url String
- (Beta) Output only. The URL of the reasoning engine.
Look up Existing AiReasoningEngine Resource
Get an existing AiReasoningEngine 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?: AiReasoningEngineState, opts?: CustomResourceOptions): AiReasoningEngine@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
context_spec: Optional[AiReasoningEngineContextSpecArgs] = None,
create_time: Optional[str] = None,
deletion_policy: Optional[str] = None,
description: Optional[str] = None,
display_name: Optional[str] = None,
effective_labels: Optional[Mapping[str, str]] = None,
encryption_spec: Optional[AiReasoningEngineEncryptionSpecArgs] = None,
labels: Optional[Mapping[str, str]] = None,
name: Optional[str] = None,
project: Optional[str] = None,
pulumi_labels: Optional[Mapping[str, str]] = None,
region: Optional[str] = None,
spec: Optional[AiReasoningEngineSpecArgs] = None,
traffic_config: Optional[AiReasoningEngineTrafficConfigArgs] = None,
update_time: Optional[str] = None,
url: Optional[str] = None) -> AiReasoningEnginefunc GetAiReasoningEngine(ctx *Context, name string, id IDInput, state *AiReasoningEngineState, opts ...ResourceOption) (*AiReasoningEngine, error)public static AiReasoningEngine Get(string name, Input<string> id, AiReasoningEngineState? state, CustomResourceOptions? opts = null)public static AiReasoningEngine get(String name, Output<String> id, AiReasoningEngineState state, CustomResourceOptions options)resources: _: type: gcp:vertex:AiReasoningEngine get: id: ${id}import {
to = gcp_vertex_ai_reasoning_engine.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Context
Spec AiReasoning Engine Context Spec - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- Create
Time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Deletion
Policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- Description string
- The description of the ReasoningEngine.
- Display
Name string - The display name of the ReasoningEngine.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Encryption
Spec AiReasoning Engine Encryption Spec - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- Labels Dictionary<string, string>
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Region string
- The region of the reasoning engine. eg us-central1
- Spec
Ai
Reasoning Engine Spec - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- Traffic
Config AiReasoning Engine Traffic Config (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.- Update
Time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Url string
- (Beta) Output only. The URL of the reasoning engine.
- Context
Spec AiReasoning Engine Context Spec Args - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- Create
Time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Deletion
Policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- Description string
- The description of the ReasoningEngine.
- Display
Name string - The display name of the ReasoningEngine.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Encryption
Spec AiReasoning Engine Encryption Spec Args - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- Labels map[string]string
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Region string
- The region of the reasoning engine. eg us-central1
- Spec
Ai
Reasoning Engine Spec Args - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- Traffic
Config AiReasoning Engine Traffic Config Args (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.- Update
Time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- Url string
- (Beta) Output only. The URL of the reasoning engine.
- context_
spec object - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- create_
time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- deletion_
policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description string
- The description of the ReasoningEngine.
- display_
name string - The display name of the ReasoningEngine.
- effective_
labels map(string) - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- encryption_
spec object - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels map(string)
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_
labels map(string) - The combination of labels configured directly on the resource and default labels configured on the provider.
- region string
- The region of the reasoning engine. eg us-central1
- spec object
- Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic_
config object (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.- update_
time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url string
- (Beta) Output only. The URL of the reasoning engine.
- context
Spec AiReasoning Engine Context Spec - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- create
Time String - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- deletion
Policy String Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description String
- The description of the ReasoningEngine.
- display
Name String - The display name of the ReasoningEngine.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- encryption
Spec AiReasoning Engine Encryption Spec - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels Map<String,String>
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- name String
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- region String
- The region of the reasoning engine. eg us-central1
- spec
Ai
Reasoning Engine Spec - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic
Config AiReasoning Engine Traffic Config (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.- update
Time String - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url String
- (Beta) Output only. The URL of the reasoning engine.
- context
Spec AiReasoning Engine Context Spec - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- create
Time string - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- deletion
Policy string Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description string
- The description of the ReasoningEngine.
- display
Name string - The display name of the ReasoningEngine.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- encryption
Spec AiReasoning Engine Encryption Spec - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels {[key: string]: string}
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- name string
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- region string
- The region of the reasoning engine. eg us-central1
- spec
Ai
Reasoning Engine Spec - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic
Config AiReasoning Engine Traffic Config (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.- update
Time string - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url string
- (Beta) Output only. The URL of the reasoning engine.
- context_
spec AiReasoning Engine Context Spec Args - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- create_
time str - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- deletion_
policy str Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description str
- The description of the ReasoningEngine.
- display_
name str - The display name of the ReasoningEngine.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- encryption_
spec AiReasoning Engine Encryption Spec Args - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels Mapping[str, str]
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- name str
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- region str
- The region of the reasoning engine. eg us-central1
- spec
Ai
Reasoning Engine Spec Args - Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic_
config AiReasoning Engine Traffic Config Args (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.- update_
time str - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url str
- (Beta) Output only. The URL of the reasoning engine.
- context
Spec Property Map - (Optional, Beta) Optional. Configuration for how Agent Engine sub-resources should manage context. Structure is documented below.
- create
Time String - The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- deletion
Policy String Optional. The deletion policy for the reasoning engine. Setting this to FORCE allows the reasoning engine to be deleted regardless of child undeleted resources.
When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is permitted.
- description String
- The description of the ReasoningEngine.
- display
Name String - The display name of the ReasoningEngine.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- encryption
Spec Property Map - Optional. Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key. Structure is documented below.
- labels Map<String>
The labels associated with this ReasoningEngine. You can use these to organize and group your ReasoningEngines.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- name String
- The generated name of the ReasoningEngine, in the format projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- region String
- The region of the reasoning engine. eg us-central1
- spec Property Map
- Optional. Configurations of the ReasoningEngine. Structure is documented below.
- traffic
Config Property Map (Optional, Beta) Optional. Traffic distribution configuration for the Reasoning Engine.
Note: Because revision IDs do not exist before the resource is created, the best practice for initial deployment is to set
trafficSplitAlwaysLatest {}. Once the resource is created, you can update the configuration to a manual split using newly generated revision IDs, short names (e.g.rev-1), or keywords such asLATESTandPREVIOUS. Structure is documented below.- update
Time String - The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
- url String
- (Beta) Output only. The URL of the reasoning engine.
Supporting Types
AiReasoningEngineContextSpec, AiReasoningEngineContextSpecArgs
- Example
Store AiConfig Reasoning Engine Context Spec Example Store Config - (Optional, Beta) Optional. Specification for an Example Store, which manages few-shot examples for the Agent Engine. Structure is documented below.
- Memory
Bank AiConfig Reasoning Engine Context Spec Memory Bank Config - Specification for a Memory Bank, which manages memories for the Agent Engine. Structure is documented below.
- Example
Store AiConfig Reasoning Engine Context Spec Example Store Config - (Optional, Beta) Optional. Specification for an Example Store, which manages few-shot examples for the Agent Engine. Structure is documented below.
- Memory
Bank AiConfig Reasoning Engine Context Spec Memory Bank Config - Specification for a Memory Bank, which manages memories for the Agent Engine. Structure is documented below.
- example_
store_ objectconfig - (Optional, Beta) Optional. Specification for an Example Store, which manages few-shot examples for the Agent Engine. Structure is documented below.
- memory_
bank_ objectconfig - Specification for a Memory Bank, which manages memories for the Agent Engine. Structure is documented below.
- example
Store AiConfig Reasoning Engine Context Spec Example Store Config - (Optional, Beta) Optional. Specification for an Example Store, which manages few-shot examples for the Agent Engine. Structure is documented below.
- memory
Bank AiConfig Reasoning Engine Context Spec Memory Bank Config - Specification for a Memory Bank, which manages memories for the Agent Engine. Structure is documented below.
- example
Store AiConfig Reasoning Engine Context Spec Example Store Config - (Optional, Beta) Optional. Specification for an Example Store, which manages few-shot examples for the Agent Engine. Structure is documented below.
- memory
Bank AiConfig Reasoning Engine Context Spec Memory Bank Config - Specification for a Memory Bank, which manages memories for the Agent Engine. Structure is documented below.
- example_
store_ Aiconfig Reasoning Engine Context Spec Example Store Config - (Optional, Beta) Optional. Specification for an Example Store, which manages few-shot examples for the Agent Engine. Structure is documented below.
- memory_
bank_ Aiconfig Reasoning Engine Context Spec Memory Bank Config - Specification for a Memory Bank, which manages memories for the Agent Engine. Structure is documented below.
- example
Store Property MapConfig - (Optional, Beta) Optional. Specification for an Example Store, which manages few-shot examples for the Agent Engine. Structure is documented below.
- memory
Bank Property MapConfig - Specification for a Memory Bank, which manages memories for the Agent Engine. Structure is documented below.
AiReasoningEngineContextSpecExampleStoreConfig, AiReasoningEngineContextSpecExampleStoreConfigArgs
- Similarity
Search AiConfig Reasoning Engine Context Spec Example Store Config Similarity Search Config - Optional. Configuration for how to perform similarity search on examples. Structure is documented below.
- Similarity
Search AiConfig Reasoning Engine Context Spec Example Store Config Similarity Search Config - Optional. Configuration for how to perform similarity search on examples. Structure is documented below.
- similarity_
search_ objectconfig - Optional. Configuration for how to perform similarity search on examples. Structure is documented below.
- similarity
Search AiConfig Reasoning Engine Context Spec Example Store Config Similarity Search Config - Optional. Configuration for how to perform similarity search on examples. Structure is documented below.
- similarity
Search AiConfig Reasoning Engine Context Spec Example Store Config Similarity Search Config - Optional. Configuration for how to perform similarity search on examples. Structure is documented below.
- similarity_
search_ Aiconfig Reasoning Engine Context Spec Example Store Config Similarity Search Config - Optional. Configuration for how to perform similarity search on examples. Structure is documented below.
- similarity
Search Property MapConfig - Optional. Configuration for how to perform similarity search on examples. Structure is documented below.
AiReasoningEngineContextSpecExampleStoreConfigSimilaritySearchConfig, AiReasoningEngineContextSpecExampleStoreConfigSimilaritySearchConfigArgs
- Embedding
Model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- Embedding
Model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding_
model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding
Model String - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding
Model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding_
model str - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding
Model String - Required. The Gemini model used to generate embeddings to lookup similar examples.
AiReasoningEngineContextSpecMemoryBankConfig, AiReasoningEngineContextSpecMemoryBankConfigArgs
- Customization
Configs List<AiReasoning Engine Context Spec Memory Bank Config Customization Config> - Optional. Customization configs for how Agent Engine sub-resources manage context at different scope levels. Structure is documented below.
- Disable
Memory boolRevisions - If true, no memory revisions will be created for any requests to the Memory Bank.
- Generation
Config AiReasoning Engine Context Spec Memory Bank Config Generation Config - Configuration for how to generate memories for the Memory Bank. Structure is documented below.
- Similarity
Search AiConfig Reasoning Engine Context Spec Memory Bank Config Similarity Search Config - Configuration for how to perform similarity search on memories. Structure is documented below.
- Structured
Memory List<AiConfigs Reasoning Engine Context Spec Memory Bank Config Structured Memory Config> - Optional. Structured memory configurations for Agent Engine sub-resources. Structure is documented below.
- Ttl
Config AiReasoning Engine Context Spec Memory Bank Config Ttl Config - Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. Structure is documented below.
- Customization
Configs []AiReasoning Engine Context Spec Memory Bank Config Customization Config - Optional. Customization configs for how Agent Engine sub-resources manage context at different scope levels. Structure is documented below.
- Disable
Memory boolRevisions - If true, no memory revisions will be created for any requests to the Memory Bank.
- Generation
Config AiReasoning Engine Context Spec Memory Bank Config Generation Config - Configuration for how to generate memories for the Memory Bank. Structure is documented below.
- Similarity
Search AiConfig Reasoning Engine Context Spec Memory Bank Config Similarity Search Config - Configuration for how to perform similarity search on memories. Structure is documented below.
- Structured
Memory []AiConfigs Reasoning Engine Context Spec Memory Bank Config Structured Memory Config - Optional. Structured memory configurations for Agent Engine sub-resources. Structure is documented below.
- Ttl
Config AiReasoning Engine Context Spec Memory Bank Config Ttl Config - Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. Structure is documented below.
- customization_
configs list(object) - Optional. Customization configs for how Agent Engine sub-resources manage context at different scope levels. Structure is documented below.
- disable_
memory_ boolrevisions - If true, no memory revisions will be created for any requests to the Memory Bank.
- generation_
config object - Configuration for how to generate memories for the Memory Bank. Structure is documented below.
- similarity_
search_ objectconfig - Configuration for how to perform similarity search on memories. Structure is documented below.
- structured_
memory_ list(object)configs - Optional. Structured memory configurations for Agent Engine sub-resources. Structure is documented below.
- ttl_
config object - Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. Structure is documented below.
- customization
Configs List<AiReasoning Engine Context Spec Memory Bank Config Customization Config> - Optional. Customization configs for how Agent Engine sub-resources manage context at different scope levels. Structure is documented below.
- disable
Memory BooleanRevisions - If true, no memory revisions will be created for any requests to the Memory Bank.
- generation
Config AiReasoning Engine Context Spec Memory Bank Config Generation Config - Configuration for how to generate memories for the Memory Bank. Structure is documented below.
- similarity
Search AiConfig Reasoning Engine Context Spec Memory Bank Config Similarity Search Config - Configuration for how to perform similarity search on memories. Structure is documented below.
- structured
Memory List<AiConfigs Reasoning Engine Context Spec Memory Bank Config Structured Memory Config> - Optional. Structured memory configurations for Agent Engine sub-resources. Structure is documented below.
- ttl
Config AiReasoning Engine Context Spec Memory Bank Config Ttl Config - Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. Structure is documented below.
- customization
Configs AiReasoning Engine Context Spec Memory Bank Config Customization Config[] - Optional. Customization configs for how Agent Engine sub-resources manage context at different scope levels. Structure is documented below.
- disable
Memory booleanRevisions - If true, no memory revisions will be created for any requests to the Memory Bank.
- generation
Config AiReasoning Engine Context Spec Memory Bank Config Generation Config - Configuration for how to generate memories for the Memory Bank. Structure is documented below.
- similarity
Search AiConfig Reasoning Engine Context Spec Memory Bank Config Similarity Search Config - Configuration for how to perform similarity search on memories. Structure is documented below.
- structured
Memory AiConfigs Reasoning Engine Context Spec Memory Bank Config Structured Memory Config[] - Optional. Structured memory configurations for Agent Engine sub-resources. Structure is documented below.
- ttl
Config AiReasoning Engine Context Spec Memory Bank Config Ttl Config - Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. Structure is documented below.
- customization_
configs Sequence[AiReasoning Engine Context Spec Memory Bank Config Customization Config] - Optional. Customization configs for how Agent Engine sub-resources manage context at different scope levels. Structure is documented below.
- disable_
memory_ boolrevisions - If true, no memory revisions will be created for any requests to the Memory Bank.
- generation_
config AiReasoning Engine Context Spec Memory Bank Config Generation Config - Configuration for how to generate memories for the Memory Bank. Structure is documented below.
- similarity_
search_ Aiconfig Reasoning Engine Context Spec Memory Bank Config Similarity Search Config - Configuration for how to perform similarity search on memories. Structure is documented below.
- structured_
memory_ Sequence[Aiconfigs Reasoning Engine Context Spec Memory Bank Config Structured Memory Config] - Optional. Structured memory configurations for Agent Engine sub-resources. Structure is documented below.
- ttl_
config AiReasoning Engine Context Spec Memory Bank Config Ttl Config - Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. Structure is documented below.
- customization
Configs List<Property Map> - Optional. Customization configs for how Agent Engine sub-resources manage context at different scope levels. Structure is documented below.
- disable
Memory BooleanRevisions - If true, no memory revisions will be created for any requests to the Memory Bank.
- generation
Config Property Map - Configuration for how to generate memories for the Memory Bank. Structure is documented below.
- similarity
Search Property MapConfig - Configuration for how to perform similarity search on memories. Structure is documented below.
- structured
Memory List<Property Map>Configs - Optional. Structured memory configurations for Agent Engine sub-resources. Structure is documented below.
- ttl
Config Property Map - Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. Structure is documented below.
AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfig, AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigArgs
- Consolidation
Config AiReasoning Engine Context Spec Memory Bank Config Customization Config Consolidation Config - Optional. Configuration for how many memory revisions Memory Bank considers when consolidating each memory candidate. Structure is documented below.
- Enable
Third boolPerson Memories - Optional. Generate memories in the third person if set to true.
- Memory
Topics List<AiReasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic> - Optional. List of topics that the memory should be associated with. Structure is documented below.
- Scope
Keys List<string> - Optional. List of scope keys that this customization config applies to.
- Consolidation
Config AiReasoning Engine Context Spec Memory Bank Config Customization Config Consolidation Config - Optional. Configuration for how many memory revisions Memory Bank considers when consolidating each memory candidate. Structure is documented below.
- Enable
Third boolPerson Memories - Optional. Generate memories in the third person if set to true.
- Memory
Topics []AiReasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic - Optional. List of topics that the memory should be associated with. Structure is documented below.
- Scope
Keys []string - Optional. List of scope keys that this customization config applies to.
- consolidation_
config object - Optional. Configuration for how many memory revisions Memory Bank considers when consolidating each memory candidate. Structure is documented below.
- enable_
third_ boolperson_ memories - Optional. Generate memories in the third person if set to true.
- memory_
topics list(object) - Optional. List of topics that the memory should be associated with. Structure is documented below.
- scope_
keys list(string) - Optional. List of scope keys that this customization config applies to.
- consolidation
Config AiReasoning Engine Context Spec Memory Bank Config Customization Config Consolidation Config - Optional. Configuration for how many memory revisions Memory Bank considers when consolidating each memory candidate. Structure is documented below.
- enable
Third BooleanPerson Memories - Optional. Generate memories in the third person if set to true.
- memory
Topics List<AiReasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic> - Optional. List of topics that the memory should be associated with. Structure is documented below.
- scope
Keys List<String> - Optional. List of scope keys that this customization config applies to.
- consolidation
Config AiReasoning Engine Context Spec Memory Bank Config Customization Config Consolidation Config - Optional. Configuration for how many memory revisions Memory Bank considers when consolidating each memory candidate. Structure is documented below.
- enable
Third booleanPerson Memories - Optional. Generate memories in the third person if set to true.
- memory
Topics AiReasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic[] - Optional. List of topics that the memory should be associated with. Structure is documented below.
- scope
Keys string[] - Optional. List of scope keys that this customization config applies to.
- consolidation_
config AiReasoning Engine Context Spec Memory Bank Config Customization Config Consolidation Config - Optional. Configuration for how many memory revisions Memory Bank considers when consolidating each memory candidate. Structure is documented below.
- enable_
third_ boolperson_ memories - Optional. Generate memories in the third person if set to true.
- memory_
topics Sequence[AiReasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic] - Optional. List of topics that the memory should be associated with. Structure is documented below.
- scope_
keys Sequence[str] - Optional. List of scope keys that this customization config applies to.
- consolidation
Config Property Map - Optional. Configuration for how many memory revisions Memory Bank considers when consolidating each memory candidate. Structure is documented below.
- enable
Third BooleanPerson Memories - Optional. Generate memories in the third person if set to true.
- memory
Topics List<Property Map> - Optional. List of topics that the memory should be associated with. Structure is documented below.
- scope
Keys List<String> - Optional. List of scope keys that this customization config applies to.
AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfig, AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigConsolidationConfigArgs
- Revisions
Per intCandidate Count - Number of revisions to consider per candidate count.
- Revisions
Per intCandidate Count - Number of revisions to consider per candidate count.
- revisions_
per_ numbercandidate_ count - Number of revisions to consider per candidate count.
- revisions
Per IntegerCandidate Count - Number of revisions to consider per candidate count.
- revisions
Per numberCandidate Count - Number of revisions to consider per candidate count.
- revisions_
per_ intcandidate_ count - Number of revisions to consider per candidate count.
- revisions
Per NumberCandidate Count - Number of revisions to consider per candidate count.
AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopic, AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicArgs
- Custom
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Custom Memory Topic - Optional. Custom memory topic. Structure is documented below.
- Managed
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Managed Memory Topic - Optional. Managed memory topic. Structure is documented below.
- Custom
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Custom Memory Topic - Optional. Custom memory topic. Structure is documented below.
- Managed
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Managed Memory Topic - Optional. Managed memory topic. Structure is documented below.
- custom_
memory_ objecttopic - Optional. Custom memory topic. Structure is documented below.
- managed_
memory_ objecttopic - Optional. Managed memory topic. Structure is documented below.
- custom
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Custom Memory Topic - Optional. Custom memory topic. Structure is documented below.
- managed
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Managed Memory Topic - Optional. Managed memory topic. Structure is documented below.
- custom
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Custom Memory Topic - Optional. Custom memory topic. Structure is documented below.
- managed
Memory AiTopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Managed Memory Topic - Optional. Managed memory topic. Structure is documented below.
- custom_
memory_ Aitopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Custom Memory Topic - Optional. Custom memory topic. Structure is documented below.
- managed_
memory_ Aitopic Reasoning Engine Context Spec Memory Bank Config Customization Config Memory Topic Managed Memory Topic - Optional. Managed memory topic. Structure is documented below.
- custom
Memory Property MapTopic - Optional. Custom memory topic. Structure is documented below.
- managed
Memory Property MapTopic - Optional. Managed memory topic. Structure is documented below.
AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopic, AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicCustomMemoryTopicArgs
- Description string
- Description of custom memory topic.
- Label string
- Label of custom memory topic.
- Description string
- Description of custom memory topic.
- Label string
- Label of custom memory topic.
- description string
- Description of custom memory topic.
- label string
- Label of custom memory topic.
- description String
- Description of custom memory topic.
- label String
- Label of custom memory topic.
- description string
- Description of custom memory topic.
- label string
- Label of custom memory topic.
- description str
- Description of custom memory topic.
- label str
- Label of custom memory topic.
- description String
- Description of custom memory topic.
- label String
- Label of custom memory topic.
AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopic, AiReasoningEngineContextSpecMemoryBankConfigCustomizationConfigMemoryTopicManagedMemoryTopicArgs
- Managed
Topic stringEnum - Managed topic enum (e.g. USER_PREFERENCES, EXPLICIT_INSTRUCTIONS).
- Managed
Topic stringEnum - Managed topic enum (e.g. USER_PREFERENCES, EXPLICIT_INSTRUCTIONS).
- managed_
topic_ stringenum - Managed topic enum (e.g. USER_PREFERENCES, EXPLICIT_INSTRUCTIONS).
- managed
Topic StringEnum - Managed topic enum (e.g. USER_PREFERENCES, EXPLICIT_INSTRUCTIONS).
- managed
Topic stringEnum - Managed topic enum (e.g. USER_PREFERENCES, EXPLICIT_INSTRUCTIONS).
- managed_
topic_ strenum - Managed topic enum (e.g. USER_PREFERENCES, EXPLICIT_INSTRUCTIONS).
- managed
Topic StringEnum - Managed topic enum (e.g. USER_PREFERENCES, EXPLICIT_INSTRUCTIONS).
AiReasoningEngineContextSpecMemoryBankConfigGenerationConfig, AiReasoningEngineContextSpecMemoryBankConfigGenerationConfigArgs
- Model string
- The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}.
- Model string
- The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}.
- model string
- The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}.
- model String
- The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}.
- model string
- The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}.
- model str
- The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}.
- model String
- The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}.
AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfig, AiReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfigArgs
- Embedding
Model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- Embedding
Model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding_
model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding
Model String - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding
Model string - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding_
model str - Required. The Gemini model used to generate embeddings to lookup similar examples.
- embedding
Model String - Required. The Gemini model used to generate embeddings to lookup similar examples.
AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfig, AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigArgs
- Schema
Configs List<AiReasoning Engine Context Spec Memory Bank Config Structured Memory Config Schema Config> - Optional. List of schema configs that this structured memory config applies to. Structure is documented below.
- Scope
Keys List<string> - Optional. List of scope keys that this structured memory config applies to.
- Schema
Configs []AiReasoning Engine Context Spec Memory Bank Config Structured Memory Config Schema Config - Optional. List of schema configs that this structured memory config applies to. Structure is documented below.
- Scope
Keys []string - Optional. List of scope keys that this structured memory config applies to.
- schema_
configs list(object) - Optional. List of schema configs that this structured memory config applies to. Structure is documented below.
- scope_
keys list(string) - Optional. List of scope keys that this structured memory config applies to.
- schema
Configs List<AiReasoning Engine Context Spec Memory Bank Config Structured Memory Config Schema Config> - Optional. List of schema configs that this structured memory config applies to. Structure is documented below.
- scope
Keys List<String> - Optional. List of scope keys that this structured memory config applies to.
- schema
Configs AiReasoning Engine Context Spec Memory Bank Config Structured Memory Config Schema Config[] - Optional. List of schema configs that this structured memory config applies to. Structure is documented below.
- scope
Keys string[] - Optional. List of scope keys that this structured memory config applies to.
- schema_
configs Sequence[AiReasoning Engine Context Spec Memory Bank Config Structured Memory Config Schema Config] - Optional. List of schema configs that this structured memory config applies to. Structure is documented below.
- scope_
keys Sequence[str] - Optional. List of scope keys that this structured memory config applies to.
- schema
Configs List<Property Map> - Optional. List of schema configs that this structured memory config applies to. Structure is documented below.
- scope
Keys List<String> - Optional. List of scope keys that this structured memory config applies to.
AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfig, AiReasoningEngineContextSpecMemoryBankConfigStructuredMemoryConfigSchemaConfigArgs
- Id string
- Required. Unique ID identifying the memory schema.
- Memory
Schema string - Optional. The memory schema defined as an OpenAPI Schema Object JSON string.
- Id string
- Required. Unique ID identifying the memory schema.
- Memory
Schema string - Optional. The memory schema defined as an OpenAPI Schema Object JSON string.
- id string
- Required. Unique ID identifying the memory schema.
- memory_
schema string - Optional. The memory schema defined as an OpenAPI Schema Object JSON string.
- id String
- Required. Unique ID identifying the memory schema.
- memory
Schema String - Optional. The memory schema defined as an OpenAPI Schema Object JSON string.
- id string
- Required. Unique ID identifying the memory schema.
- memory
Schema string - Optional. The memory schema defined as an OpenAPI Schema Object JSON string.
- id str
- Required. Unique ID identifying the memory schema.
- memory_
schema str - Optional. The memory schema defined as an OpenAPI Schema Object JSON string.
- id String
- Required. Unique ID identifying the memory schema.
- memory
Schema String - Optional. The memory schema defined as an OpenAPI Schema Object JSON string.
AiReasoningEngineContextSpecMemoryBankConfigTtlConfig, AiReasoningEngineContextSpecMemoryBankConfigTtlConfigArgs
- Default
Ttl string - The default TTL duration of the memories in the Memory Bank.
- Granular
Ttl AiConfig Reasoning Engine Context Spec Memory Bank Config Ttl Config Granular Ttl Config - The granular TTL configuration of the memories in the Memory Bank. Structure is documented below.
- Memory
Revision stringDefault Ttl - The default TTL duration of the memory revisions in the Memory Bank.
- Default
Ttl string - The default TTL duration of the memories in the Memory Bank.
- Granular
Ttl AiConfig Reasoning Engine Context Spec Memory Bank Config Ttl Config Granular Ttl Config - The granular TTL configuration of the memories in the Memory Bank. Structure is documented below.
- Memory
Revision stringDefault Ttl - The default TTL duration of the memory revisions in the Memory Bank.
- default_
ttl string - The default TTL duration of the memories in the Memory Bank.
- granular_
ttl_ objectconfig - The granular TTL configuration of the memories in the Memory Bank. Structure is documented below.
- memory_
revision_ stringdefault_ ttl - The default TTL duration of the memory revisions in the Memory Bank.
- default
Ttl String - The default TTL duration of the memories in the Memory Bank.
- granular
Ttl AiConfig Reasoning Engine Context Spec Memory Bank Config Ttl Config Granular Ttl Config - The granular TTL configuration of the memories in the Memory Bank. Structure is documented below.
- memory
Revision StringDefault Ttl - The default TTL duration of the memory revisions in the Memory Bank.
- default
Ttl string - The default TTL duration of the memories in the Memory Bank.
- granular
Ttl AiConfig Reasoning Engine Context Spec Memory Bank Config Ttl Config Granular Ttl Config - The granular TTL configuration of the memories in the Memory Bank. Structure is documented below.
- memory
Revision stringDefault Ttl - The default TTL duration of the memory revisions in the Memory Bank.
- default_
ttl str - The default TTL duration of the memories in the Memory Bank.
- granular_
ttl_ Aiconfig Reasoning Engine Context Spec Memory Bank Config Ttl Config Granular Ttl Config - The granular TTL configuration of the memories in the Memory Bank. Structure is documented below.
- memory_
revision_ strdefault_ ttl - The default TTL duration of the memory revisions in the Memory Bank.
- default
Ttl String - The default TTL duration of the memories in the Memory Bank.
- granular
Ttl Property MapConfig - The granular TTL configuration of the memories in the Memory Bank. Structure is documented below.
- memory
Revision StringDefault Ttl - The default TTL duration of the memory revisions in the Memory Bank.
AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfig, AiReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfigArgs
- Create
Ttl string - The TTL duration for memories uploaded via CreateMemory.
- Generate
Created stringTtl - The TTL duration for memories newly generated via GenerateMemories.
- Generate
Updated stringTtl - The TTL duration for memories updated via GenerateMemories.
- Create
Ttl string - The TTL duration for memories uploaded via CreateMemory.
- Generate
Created stringTtl - The TTL duration for memories newly generated via GenerateMemories.
- Generate
Updated stringTtl - The TTL duration for memories updated via GenerateMemories.
- create_
ttl string - The TTL duration for memories uploaded via CreateMemory.
- generate_
created_ stringttl - The TTL duration for memories newly generated via GenerateMemories.
- generate_
updated_ stringttl - The TTL duration for memories updated via GenerateMemories.
- create
Ttl String - The TTL duration for memories uploaded via CreateMemory.
- generate
Created StringTtl - The TTL duration for memories newly generated via GenerateMemories.
- generate
Updated StringTtl - The TTL duration for memories updated via GenerateMemories.
- create
Ttl string - The TTL duration for memories uploaded via CreateMemory.
- generate
Created stringTtl - The TTL duration for memories newly generated via GenerateMemories.
- generate
Updated stringTtl - The TTL duration for memories updated via GenerateMemories.
- create_
ttl str - The TTL duration for memories uploaded via CreateMemory.
- generate_
created_ strttl - The TTL duration for memories newly generated via GenerateMemories.
- generate_
updated_ strttl - The TTL duration for memories updated via GenerateMemories.
- create
Ttl String - The TTL duration for memories uploaded via CreateMemory.
- generate
Created StringTtl - The TTL duration for memories newly generated via GenerateMemories.
- generate
Updated StringTtl - The TTL duration for memories updated via GenerateMemories.
AiReasoningEngineEncryptionSpec, AiReasoningEngineEncryptionSpecArgs
- Kms
Key stringName - Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the compute resource is created.
- Kms
Key stringName - Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the compute resource is created.
- kms_
key_ stringname - Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the compute resource is created.
- kms
Key StringName - Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the compute resource is created.
- kms
Key stringName - Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the compute resource is created.
- kms_
key_ strname - Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the compute resource is created.
- kms
Key StringName - Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the compute resource is created.
AiReasoningEngineSpec, AiReasoningEngineSpecArgs
- Agent
Card string - Optional. The A2A Agent Card for the agent (if available).
- Agent
Framework string - Optional. The OSS agent framework used to develop the agent.
- Build
Spec AiReasoning Engine Spec Build Spec - Optional. Configuration for building container image.
- Class
Methods string - Optional. Declarations for object class methods in OpenAPI
specification format.
Note: When deploying via Terraform, this field must be populated manually.
Otherwise, client SDKs (like
agent_engines.get()) will not be able to discover the methods, and calls to the engine (or A2A integrations) will fail. Depending on the template/framework used (agentFramework), the required class methods and their parameters differ: Warning: The configuration snippets below are illustrative, may not be exhaustive, and could stop working over time. For the most up-to-date method lists and schemas, please consult the respective SDK source code:- For Google ADK: See ADK Python SDK cli_deploy.py.
- For Langchain: See Vertex AI Python SDK langchain.py.
- Container
Spec AiReasoning Engine Spec Container Spec - Deploy from a container image with a defined entrypoint and commands.
- Deployment
Spec AiReasoning Engine Spec Deployment Spec - Optional. The specification of a Reasoning Engine deployment.
- Effective
Identity string - The identity to use for the Reasoning Engine.
- Example
Store string - Optional. The resource name of the linked ExampleStore.
- Identity
Type string - Optional. The identity type to use for the Reasoning Engine.
If not specified, the 'service_account' field will be used if set,
otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
Possible values:
- 'SERVICE_ACCOUNT': Use a custom service account if the 'service_account' field is set, otherwise use the default Vertex AI Reasoning Engine Service Agent in the project.
- 'AGENT_IDENTITY': Use Agent Identity. The 'service_account' field must not be set. Possible values: ["SERVICE_ACCOUNT", "AGENT_IDENTITY"]
- Package
Spec AiReasoning Engine Spec Package Spec - Optional. User provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override, but keeping the fieldBehavior to avoid introducing breaking changes.
- Service
Account string - Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine service Agent in the project will be used.
- Source
Code AiSpec Reasoning Engine Spec Source Code Spec - Specification for deploying from source code.
- Agent
Card string - Optional. The A2A Agent Card for the agent (if available).
- Agent
Framework string - Optional. The OSS agent framework used to develop the agent.
- Build
Spec AiReasoning Engine Spec Build Spec - Optional. Configuration for building container image.
- Class
Methods string - Optional. Declarations for object class methods in OpenAPI
specification format.
Note: When deploying via Terraform, this field must be populated manually.
Otherwise, client SDKs (like
agent_engines.get()) will not be able to discover the methods, and calls to the engine (or A2A integrations) will fail. Depending on the template/framework used (agentFramework), the required class methods and their parameters differ: Warning: The configuration snippets below are illustrative, may not be exhaustive, and could stop working over time. For the most up-to-date method lists and schemas, please consult the respective SDK source code:- For Google ADK: See ADK Python SDK cli_deploy.py.
- For Langchain: See Vertex AI Python SDK langchain.py.
- Container
Spec AiReasoning Engine Spec Container Spec - Deploy from a container image with a defined entrypoint and commands.
- Deployment
Spec AiReasoning Engine Spec Deployment Spec - Optional. The specification of a Reasoning Engine deployment.
- Effective
Identity string - The identity to use for the Reasoning Engine.
- Example
Store string - Optional. The resource name of the linked ExampleStore.
- Identity
Type string - Optional. The identity type to use for the Reasoning Engine.
If not specified, the 'service_account' field will be used if set,
otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
Possible values:
- 'SERVICE_ACCOUNT': Use a custom service account if the 'service_account' field is set, otherwise use the default Vertex AI Reasoning Engine Service Agent in the project.
- 'AGENT_IDENTITY': Use Agent Identity. The 'service_account' field must not be set. Possible values: ["SERVICE_ACCOUNT", "AGENT_IDENTITY"]
- Package
Spec AiReasoning Engine Spec Package Spec - Optional. User provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override, but keeping the fieldBehavior to avoid introducing breaking changes.
- Service
Account string - Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine service Agent in the project will be used.
- Source
Code AiSpec Reasoning Engine Spec Source Code Spec - Specification for deploying from source code.
- agent_
card string - Optional. The A2A Agent Card for the agent (if available).
- agent_
framework string - Optional. The OSS agent framework used to develop the agent.
- build_
spec object - Optional. Configuration for building container image.
- class_
methods string - Optional. Declarations for object class methods in OpenAPI
specification format.
Note: When deploying via Terraform, this field must be populated manually.
Otherwise, client SDKs (like
agent_engines.get()) will not be able to discover the methods, and calls to the engine (or A2A integrations) will fail. Depending on the template/framework used (agentFramework), the required class methods and their parameters differ: Warning: The configuration snippets below are illustrative, may not be exhaustive, and could stop working over time. For the most up-to-date method lists and schemas, please consult the respective SDK source code:- For Google ADK: See ADK Python SDK cli_deploy.py.
- For Langchain: See Vertex AI Python SDK langchain.py.
- container_
spec object - Deploy from a container image with a defined entrypoint and commands.
- deployment_
spec object - Optional. The specification of a Reasoning Engine deployment.
- effective_
identity string - The identity to use for the Reasoning Engine.
- example_
store string - Optional. The resource name of the linked ExampleStore.
- identity_
type string - Optional. The identity type to use for the Reasoning Engine.
If not specified, the 'service_account' field will be used if set,
otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
Possible values:
- 'SERVICE_ACCOUNT': Use a custom service account if the 'service_account' field is set, otherwise use the default Vertex AI Reasoning Engine Service Agent in the project.
- 'AGENT_IDENTITY': Use Agent Identity. The 'service_account' field must not be set. Possible values: ["SERVICE_ACCOUNT", "AGENT_IDENTITY"]
- package_
spec object - Optional. User provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override, but keeping the fieldBehavior to avoid introducing breaking changes.
- service_
account string - Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine service Agent in the project will be used.
- source_
code_ objectspec - Specification for deploying from source code.
- agent
Card String - Optional. The A2A Agent Card for the agent (if available).
- agent
Framework String - Optional. The OSS agent framework used to develop the agent.
- build
Spec AiReasoning Engine Spec Build Spec - Optional. Configuration for building container image.
- class
Methods String - Optional. Declarations for object class methods in OpenAPI
specification format.
Note: When deploying via Terraform, this field must be populated manually.
Otherwise, client SDKs (like
agent_engines.get()) will not be able to discover the methods, and calls to the engine (or A2A integrations) will fail. Depending on the template/framework used (agentFramework), the required class methods and their parameters differ: Warning: The configuration snippets below are illustrative, may not be exhaustive, and could stop working over time. For the most up-to-date method lists and schemas, please consult the respective SDK source code:- For Google ADK: See ADK Python SDK cli_deploy.py.
- For Langchain: See Vertex AI Python SDK langchain.py.
- container
Spec AiReasoning Engine Spec Container Spec - Deploy from a container image with a defined entrypoint and commands.
- deployment
Spec AiReasoning Engine Spec Deployment Spec - Optional. The specification of a Reasoning Engine deployment.
- effective
Identity String - The identity to use for the Reasoning Engine.
- example
Store String - Optional. The resource name of the linked ExampleStore.
- identity
Type String - Optional. The identity type to use for the Reasoning Engine.
If not specified, the 'service_account' field will be used if set,
otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
Possible values:
- 'SERVICE_ACCOUNT': Use a custom service account if the 'service_account' field is set, otherwise use the default Vertex AI Reasoning Engine Service Agent in the project.
- 'AGENT_IDENTITY': Use Agent Identity. The 'service_account' field must not be set. Possible values: ["SERVICE_ACCOUNT", "AGENT_IDENTITY"]
- package
Spec AiReasoning Engine Spec Package Spec - Optional. User provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override, but keeping the fieldBehavior to avoid introducing breaking changes.
- service
Account String - Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine service Agent in the project will be used.
- source
Code AiSpec Reasoning Engine Spec Source Code Spec - Specification for deploying from source code.
- agent
Card string - Optional. The A2A Agent Card for the agent (if available).
- agent
Framework string - Optional. The OSS agent framework used to develop the agent.
- build
Spec AiReasoning Engine Spec Build Spec - Optional. Configuration for building container image.
- class
Methods string - Optional. Declarations for object class methods in OpenAPI
specification format.
Note: When deploying via Terraform, this field must be populated manually.
Otherwise, client SDKs (like
agent_engines.get()) will not be able to discover the methods, and calls to the engine (or A2A integrations) will fail. Depending on the template/framework used (agentFramework), the required class methods and their parameters differ: Warning: The configuration snippets below are illustrative, may not be exhaustive, and could stop working over time. For the most up-to-date method lists and schemas, please consult the respective SDK source code:- For Google ADK: See ADK Python SDK cli_deploy.py.
- For Langchain: See Vertex AI Python SDK langchain.py.
- container
Spec AiReasoning Engine Spec Container Spec - Deploy from a container image with a defined entrypoint and commands.
- deployment
Spec AiReasoning Engine Spec Deployment Spec - Optional. The specification of a Reasoning Engine deployment.
- effective
Identity string - The identity to use for the Reasoning Engine.
- example
Store string - Optional. The resource name of the linked ExampleStore.
- identity
Type string - Optional. The identity type to use for the Reasoning Engine.
If not specified, the 'service_account' field will be used if set,
otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
Possible values:
- 'SERVICE_ACCOUNT': Use a custom service account if the 'service_account' field is set, otherwise use the default Vertex AI Reasoning Engine Service Agent in the project.
- 'AGENT_IDENTITY': Use Agent Identity. The 'service_account' field must not be set. Possible values: ["SERVICE_ACCOUNT", "AGENT_IDENTITY"]
- package
Spec AiReasoning Engine Spec Package Spec - Optional. User provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override, but keeping the fieldBehavior to avoid introducing breaking changes.
- service
Account string - Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine service Agent in the project will be used.
- source
Code AiSpec Reasoning Engine Spec Source Code Spec - Specification for deploying from source code.
- agent_
card str - Optional. The A2A Agent Card for the agent (if available).
- agent_
framework str - Optional. The OSS agent framework used to develop the agent.
- build_
spec AiReasoning Engine Spec Build Spec - Optional. Configuration for building container image.
- class_
methods str - Optional. Declarations for object class methods in OpenAPI
specification format.
Note: When deploying via Terraform, this field must be populated manually.
Otherwise, client SDKs (like
agent_engines.get()) will not be able to discover the methods, and calls to the engine (or A2A integrations) will fail. Depending on the template/framework used (agentFramework), the required class methods and their parameters differ: Warning: The configuration snippets below are illustrative, may not be exhaustive, and could stop working over time. For the most up-to-date method lists and schemas, please consult the respective SDK source code:- For Google ADK: See ADK Python SDK cli_deploy.py.
- For Langchain: See Vertex AI Python SDK langchain.py.
- container_
spec AiReasoning Engine Spec Container Spec - Deploy from a container image with a defined entrypoint and commands.
- deployment_
spec AiReasoning Engine Spec Deployment Spec - Optional. The specification of a Reasoning Engine deployment.
- effective_
identity str - The identity to use for the Reasoning Engine.
- example_
store str - Optional. The resource name of the linked ExampleStore.
- identity_
type str - Optional. The identity type to use for the Reasoning Engine.
If not specified, the 'service_account' field will be used if set,
otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
Possible values:
- 'SERVICE_ACCOUNT': Use a custom service account if the 'service_account' field is set, otherwise use the default Vertex AI Reasoning Engine Service Agent in the project.
- 'AGENT_IDENTITY': Use Agent Identity. The 'service_account' field must not be set. Possible values: ["SERVICE_ACCOUNT", "AGENT_IDENTITY"]
- package_
spec AiReasoning Engine Spec Package Spec - Optional. User provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override, but keeping the fieldBehavior to avoid introducing breaking changes.
- service_
account str - Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine service Agent in the project will be used.
- source_
code_ Aispec Reasoning Engine Spec Source Code Spec - Specification for deploying from source code.
- agent
Card String - Optional. The A2A Agent Card for the agent (if available).
- agent
Framework String - Optional. The OSS agent framework used to develop the agent.
- build
Spec Property Map - Optional. Configuration for building container image.
- class
Methods String - Optional. Declarations for object class methods in OpenAPI
specification format.
Note: When deploying via Terraform, this field must be populated manually.
Otherwise, client SDKs (like
agent_engines.get()) will not be able to discover the methods, and calls to the engine (or A2A integrations) will fail. Depending on the template/framework used (agentFramework), the required class methods and their parameters differ: Warning: The configuration snippets below are illustrative, may not be exhaustive, and could stop working over time. For the most up-to-date method lists and schemas, please consult the respective SDK source code:- For Google ADK: See ADK Python SDK cli_deploy.py.
- For Langchain: See Vertex AI Python SDK langchain.py.
- container
Spec Property Map - Deploy from a container image with a defined entrypoint and commands.
- deployment
Spec Property Map - Optional. The specification of a Reasoning Engine deployment.
- effective
Identity String - The identity to use for the Reasoning Engine.
- example
Store String - Optional. The resource name of the linked ExampleStore.
- identity
Type String - Optional. The identity type to use for the Reasoning Engine.
If not specified, the 'service_account' field will be used if set,
otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
Possible values:
- 'SERVICE_ACCOUNT': Use a custom service account if the 'service_account' field is set, otherwise use the default Vertex AI Reasoning Engine Service Agent in the project.
- 'AGENT_IDENTITY': Use Agent Identity. The 'service_account' field must not be set. Possible values: ["SERVICE_ACCOUNT", "AGENT_IDENTITY"]
- package
Spec Property Map - Optional. User provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override, but keeping the fieldBehavior to avoid introducing breaking changes.
- service
Account String - Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine service Agent in the project will be used.
- source
Code Property MapSpec - Specification for deploying from source code.
AiReasoningEngineSpecBuildSpec, AiReasoningEngineSpecBuildSpecArgs
- Worker
Pool string - Optional. The resource name of the Cloud Build WorkerPool to use for the build.
- Worker
Pool string - Optional. The resource name of the Cloud Build WorkerPool to use for the build.
- worker_
pool string - Optional. The resource name of the Cloud Build WorkerPool to use for the build.
- worker
Pool String - Optional. The resource name of the Cloud Build WorkerPool to use for the build.
- worker
Pool string - Optional. The resource name of the Cloud Build WorkerPool to use for the build.
- worker_
pool str - Optional. The resource name of the Cloud Build WorkerPool to use for the build.
- worker
Pool String - Optional. The resource name of the Cloud Build WorkerPool to use for the build.
AiReasoningEngineSpecContainerSpec, AiReasoningEngineSpecContainerSpecArgs
- Image
Uri string - The Artifact Registry Docker image URI (e.g.,
us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
- Image
Uri string - The Artifact Registry Docker image URI (e.g.,
us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
- image_
uri string - The Artifact Registry Docker image URI (e.g.,
us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
- image
Uri String - The Artifact Registry Docker image URI (e.g.,
us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
- image
Uri string - The Artifact Registry Docker image URI (e.g.,
us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
- image_
uri str - The Artifact Registry Docker image URI (e.g.,
us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
- image
Uri String - The Artifact Registry Docker image URI (e.g.,
us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
AiReasoningEngineSpecDeploymentSpec, AiReasoningEngineSpecDeploymentSpecArgs
- Agent
Gateway AiConfig Reasoning Engine Spec Deployment Spec Agent Gateway Config - (Optional, Beta) Optional. Agent Gateway configuration for a Reasoning Engine deployment. Structure is documented below.
- Agent
Server stringMode - (Optional, Beta)
Optional. The agent server mode specifies what features are used when deploy the agent to agent engine.
Possible values:
STABLE: Stable agent server mode.EXPERIMENTAL: Experimental agent server mode. Possible values are:STABLE,EXPERIMENTAL.
- Container
Concurrency int - Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
- Dedicated
Ingress boolEndpoint Enabled - (Optional, Beta) Optional. Whether to enable dedicated ingress endpoint for the deployment. If true, the deployment will be accessible via a dedicated endpoint. This is required to enable GKE V2 runtime.
- Envs
List<Ai
Reasoning Engine Spec Deployment Spec Env> - Optional. Environment variables to be set with the Reasoning Engine deployment. Structure is documented below.
- Keep
Alive AiProbe Reasoning Engine Spec Deployment Spec Keep Alive Probe - (Optional, Beta) Optional. Specifies the configuration for keep-alive probe. Structure is documented below.
- Max
Instances int - Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
- Min
Instances int - Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
- Psc
Interface AiConfig Reasoning Engine Spec Deployment Spec Psc Interface Config - Optional. Configuration for PSC-Interface. Structure is documented below.
- Resource
Limits Dictionary<string, string> - Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. For more information, go to https://cloud.google.com/run/docs/configuring/memory-limits.
- Secret
Envs List<AiReasoning Engine Spec Deployment Spec Secret Env> - Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine service Agent. Structure is documented below.
- Agent
Gateway AiConfig Reasoning Engine Spec Deployment Spec Agent Gateway Config - (Optional, Beta) Optional. Agent Gateway configuration for a Reasoning Engine deployment. Structure is documented below.
- Agent
Server stringMode - (Optional, Beta)
Optional. The agent server mode specifies what features are used when deploy the agent to agent engine.
Possible values:
STABLE: Stable agent server mode.EXPERIMENTAL: Experimental agent server mode. Possible values are:STABLE,EXPERIMENTAL.
- Container
Concurrency int - Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
- Dedicated
Ingress boolEndpoint Enabled - (Optional, Beta) Optional. Whether to enable dedicated ingress endpoint for the deployment. If true, the deployment will be accessible via a dedicated endpoint. This is required to enable GKE V2 runtime.
- Envs
[]Ai
Reasoning Engine Spec Deployment Spec Env - Optional. Environment variables to be set with the Reasoning Engine deployment. Structure is documented below.
- Keep
Alive AiProbe Reasoning Engine Spec Deployment Spec Keep Alive Probe - (Optional, Beta) Optional. Specifies the configuration for keep-alive probe. Structure is documented below.
- Max
Instances int - Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
- Min
Instances int - Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
- Psc
Interface AiConfig Reasoning Engine Spec Deployment Spec Psc Interface Config - Optional. Configuration for PSC-Interface. Structure is documented below.
- Resource
Limits map[string]string - Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. For more information, go to https://cloud.google.com/run/docs/configuring/memory-limits.
- Secret
Envs []AiReasoning Engine Spec Deployment Spec Secret Env - Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine service Agent. Structure is documented below.
- agent_
gateway_ objectconfig - (Optional, Beta) Optional. Agent Gateway configuration for a Reasoning Engine deployment. Structure is documented below.
- agent_
server_ stringmode - (Optional, Beta)
Optional. The agent server mode specifies what features are used when deploy the agent to agent engine.
Possible values:
STABLE: Stable agent server mode.EXPERIMENTAL: Experimental agent server mode. Possible values are:STABLE,EXPERIMENTAL.
- container_
concurrency number - Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
- dedicated_
ingress_ boolendpoint_ enabled - (Optional, Beta) Optional. Whether to enable dedicated ingress endpoint for the deployment. If true, the deployment will be accessible via a dedicated endpoint. This is required to enable GKE V2 runtime.
- envs list(object)
- Optional. Environment variables to be set with the Reasoning Engine deployment. Structure is documented below.
- keep_
alive_ objectprobe - (Optional, Beta) Optional. Specifies the configuration for keep-alive probe. Structure is documented below.
- max_
instances number - Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
- min_
instances number - Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
- psc_
interface_ objectconfig - Optional. Configuration for PSC-Interface. Structure is documented below.
- resource_
limits map(string) - Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. For more information, go to https://cloud.google.com/run/docs/configuring/memory-limits.
- secret_
envs list(object) - Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine service Agent. Structure is documented below.
- agent
Gateway AiConfig Reasoning Engine Spec Deployment Spec Agent Gateway Config - (Optional, Beta) Optional. Agent Gateway configuration for a Reasoning Engine deployment. Structure is documented below.
- agent
Server StringMode - (Optional, Beta)
Optional. The agent server mode specifies what features are used when deploy the agent to agent engine.
Possible values:
STABLE: Stable agent server mode.EXPERIMENTAL: Experimental agent server mode. Possible values are:STABLE,EXPERIMENTAL.
- container
Concurrency Integer - Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
- dedicated
Ingress BooleanEndpoint Enabled - (Optional, Beta) Optional. Whether to enable dedicated ingress endpoint for the deployment. If true, the deployment will be accessible via a dedicated endpoint. This is required to enable GKE V2 runtime.
- envs
List<Ai
Reasoning Engine Spec Deployment Spec Env> - Optional. Environment variables to be set with the Reasoning Engine deployment. Structure is documented below.
- keep
Alive AiProbe Reasoning Engine Spec Deployment Spec Keep Alive Probe - (Optional, Beta) Optional. Specifies the configuration for keep-alive probe. Structure is documented below.
- max
Instances Integer - Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
- min
Instances Integer - Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
- psc
Interface AiConfig Reasoning Engine Spec Deployment Spec Psc Interface Config - Optional. Configuration for PSC-Interface. Structure is documented below.
- resource
Limits Map<String,String> - Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. For more information, go to https://cloud.google.com/run/docs/configuring/memory-limits.
- secret
Envs List<AiReasoning Engine Spec Deployment Spec Secret Env> - Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine service Agent. Structure is documented below.
- agent
Gateway AiConfig Reasoning Engine Spec Deployment Spec Agent Gateway Config - (Optional, Beta) Optional. Agent Gateway configuration for a Reasoning Engine deployment. Structure is documented below.
- agent
Server stringMode - (Optional, Beta)
Optional. The agent server mode specifies what features are used when deploy the agent to agent engine.
Possible values:
STABLE: Stable agent server mode.EXPERIMENTAL: Experimental agent server mode. Possible values are:STABLE,EXPERIMENTAL.
- container
Concurrency number - Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
- dedicated
Ingress booleanEndpoint Enabled - (Optional, Beta) Optional. Whether to enable dedicated ingress endpoint for the deployment. If true, the deployment will be accessible via a dedicated endpoint. This is required to enable GKE V2 runtime.
- envs
Ai
Reasoning Engine Spec Deployment Spec Env[] - Optional. Environment variables to be set with the Reasoning Engine deployment. Structure is documented below.
- keep
Alive AiProbe Reasoning Engine Spec Deployment Spec Keep Alive Probe - (Optional, Beta) Optional. Specifies the configuration for keep-alive probe. Structure is documented below.
- max
Instances number - Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
- min
Instances number - Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
- psc
Interface AiConfig Reasoning Engine Spec Deployment Spec Psc Interface Config - Optional. Configuration for PSC-Interface. Structure is documented below.
- resource
Limits {[key: string]: string} - Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. For more information, go to https://cloud.google.com/run/docs/configuring/memory-limits.
- secret
Envs AiReasoning Engine Spec Deployment Spec Secret Env[] - Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine service Agent. Structure is documented below.
- agent_
gateway_ Aiconfig Reasoning Engine Spec Deployment Spec Agent Gateway Config - (Optional, Beta) Optional. Agent Gateway configuration for a Reasoning Engine deployment. Structure is documented below.
- agent_
server_ strmode - (Optional, Beta)
Optional. The agent server mode specifies what features are used when deploy the agent to agent engine.
Possible values:
STABLE: Stable agent server mode.EXPERIMENTAL: Experimental agent server mode. Possible values are:STABLE,EXPERIMENTAL.
- container_
concurrency int - Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
- dedicated_
ingress_ boolendpoint_ enabled - (Optional, Beta) Optional. Whether to enable dedicated ingress endpoint for the deployment. If true, the deployment will be accessible via a dedicated endpoint. This is required to enable GKE V2 runtime.
- envs
Sequence[Ai
Reasoning Engine Spec Deployment Spec Env] - Optional. Environment variables to be set with the Reasoning Engine deployment. Structure is documented below.
- keep_
alive_ Aiprobe Reasoning Engine Spec Deployment Spec Keep Alive Probe - (Optional, Beta) Optional. Specifies the configuration for keep-alive probe. Structure is documented below.
- max_
instances int - Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
- min_
instances int - Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
- psc_
interface_ Aiconfig Reasoning Engine Spec Deployment Spec Psc Interface Config - Optional. Configuration for PSC-Interface. Structure is documented below.
- resource_
limits Mapping[str, str] - Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. For more information, go to https://cloud.google.com/run/docs/configuring/memory-limits.
- secret_
envs Sequence[AiReasoning Engine Spec Deployment Spec Secret Env] - Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine service Agent. Structure is documented below.
- agent
Gateway Property MapConfig - (Optional, Beta) Optional. Agent Gateway configuration for a Reasoning Engine deployment. Structure is documented below.
- agent
Server StringMode - (Optional, Beta)
Optional. The agent server mode specifies what features are used when deploy the agent to agent engine.
Possible values:
STABLE: Stable agent server mode.EXPERIMENTAL: Experimental agent server mode. Possible values are:STABLE,EXPERIMENTAL.
- container
Concurrency Number - Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
- dedicated
Ingress BooleanEndpoint Enabled - (Optional, Beta) Optional. Whether to enable dedicated ingress endpoint for the deployment. If true, the deployment will be accessible via a dedicated endpoint. This is required to enable GKE V2 runtime.
- envs List<Property Map>
- Optional. Environment variables to be set with the Reasoning Engine deployment. Structure is documented below.
- keep
Alive Property MapProbe - (Optional, Beta) Optional. Specifies the configuration for keep-alive probe. Structure is documented below.
- max
Instances Number - Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
- min
Instances Number - Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
- psc
Interface Property MapConfig - Optional. Configuration for PSC-Interface. Structure is documented below.
- resource
Limits Map<String> - Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. For more information, go to https://cloud.google.com/run/docs/configuring/memory-limits.
- secret
Envs List<Property Map> - Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine service Agent. Structure is documented below.
AiReasoningEngineSpecDeploymentSpecAgentGatewayConfig, AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigArgs
- Agent
To AiAnywhere Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Agent To Anywhere Config - Optional. Configuration for traffic originating from the Reasoning Engine. Structure is documented below.
- Client
To AiAgent Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Client To Agent Config - Optional. Configuration for traffic targeting the Reasoning Engine. Structure is documented below.
- Agent
To AiAnywhere Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Agent To Anywhere Config - Optional. Configuration for traffic originating from the Reasoning Engine. Structure is documented below.
- Client
To AiAgent Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Client To Agent Config - Optional. Configuration for traffic targeting the Reasoning Engine. Structure is documented below.
- agent_
to_ objectanywhere_ config - Optional. Configuration for traffic originating from the Reasoning Engine. Structure is documented below.
- client_
to_ objectagent_ config - Optional. Configuration for traffic targeting the Reasoning Engine. Structure is documented below.
- agent
To AiAnywhere Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Agent To Anywhere Config - Optional. Configuration for traffic originating from the Reasoning Engine. Structure is documented below.
- client
To AiAgent Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Client To Agent Config - Optional. Configuration for traffic targeting the Reasoning Engine. Structure is documented below.
- agent
To AiAnywhere Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Agent To Anywhere Config - Optional. Configuration for traffic originating from the Reasoning Engine. Structure is documented below.
- client
To AiAgent Config Reasoning Engine Spec Deployment Spec Agent Gateway Config Client To Agent Config - Optional. Configuration for traffic targeting the Reasoning Engine. Structure is documented below.
- agent_
to_ Aianywhere_ config Reasoning Engine Spec Deployment Spec Agent Gateway Config Agent To Anywhere Config - Optional. Configuration for traffic originating from the Reasoning Engine. Structure is documented below.
- client_
to_ Aiagent_ config Reasoning Engine Spec Deployment Spec Agent Gateway Config Client To Agent Config - Optional. Configuration for traffic targeting the Reasoning Engine. Structure is documented below.
- agent
To Property MapAnywhere Config - Optional. Configuration for traffic originating from the Reasoning Engine. Structure is documented below.
- client
To Property MapAgent Config - Optional. Configuration for traffic targeting the Reasoning Engine. Structure is documented below.
AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigAgentToAnywhereConfig, AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigAgentToAnywhereConfigArgs
- Agent
Gateway string - Required. The resource name of the Agent Gateway for outbound traffic.
- Agent
Gateway string - Required. The resource name of the Agent Gateway for outbound traffic.
- agent_
gateway string - Required. The resource name of the Agent Gateway for outbound traffic.
- agent
Gateway String - Required. The resource name of the Agent Gateway for outbound traffic.
- agent
Gateway string - Required. The resource name of the Agent Gateway for outbound traffic.
- agent_
gateway str - Required. The resource name of the Agent Gateway for outbound traffic.
- agent
Gateway String - Required. The resource name of the Agent Gateway for outbound traffic.
AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigClientToAgentConfig, AiReasoningEngineSpecDeploymentSpecAgentGatewayConfigClientToAgentConfigArgs
- Agent
Gateway string - Required. The resource name of the Agent Gateway to use for inbound traffic.
- Agent
Gateway string - Required. The resource name of the Agent Gateway to use for inbound traffic.
- agent_
gateway string - Required. The resource name of the Agent Gateway to use for inbound traffic.
- agent
Gateway String - Required. The resource name of the Agent Gateway to use for inbound traffic.
- agent
Gateway string - Required. The resource name of the Agent Gateway to use for inbound traffic.
- agent_
gateway str - Required. The resource name of the Agent Gateway to use for inbound traffic.
- agent
Gateway String - Required. The resource name of the Agent Gateway to use for inbound traffic.
AiReasoningEngineSpecDeploymentSpecEnv, AiReasoningEngineSpecDeploymentSpecEnvArgs
- Name string
- The name of the environment variable. Must be a valid C identifier.
- Value string
- Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
- Name string
- The name of the environment variable. Must be a valid C identifier.
- Value string
- Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
- name string
- The name of the environment variable. Must be a valid C identifier.
- value string
- Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
- name String
- The name of the environment variable. Must be a valid C identifier.
- value String
- Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
- name string
- The name of the environment variable. Must be a valid C identifier.
- value string
- Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
- name str
- The name of the environment variable. Must be a valid C identifier.
- value str
- Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
- name String
- The name of the environment variable. Must be a valid C identifier.
- value String
- Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
AiReasoningEngineSpecDeploymentSpecKeepAliveProbe, AiReasoningEngineSpecDeploymentSpecKeepAliveProbeArgs
- Http
Get AiReasoning Engine Spec Deployment Spec Keep Alive Probe Http Get - Specifies the HTTP GET configuration for the probe. Structure is documented below.
- Max
Seconds int - Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
- Http
Get AiReasoning Engine Spec Deployment Spec Keep Alive Probe Http Get - Specifies the HTTP GET configuration for the probe. Structure is documented below.
- Max
Seconds int - Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
- http_
get object - Specifies the HTTP GET configuration for the probe. Structure is documented below.
- max_
seconds number - Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
- http
Get AiReasoning Engine Spec Deployment Spec Keep Alive Probe Http Get - Specifies the HTTP GET configuration for the probe. Structure is documented below.
- max
Seconds Integer - Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
- http
Get AiReasoning Engine Spec Deployment Spec Keep Alive Probe Http Get - Specifies the HTTP GET configuration for the probe. Structure is documented below.
- max
Seconds number - Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
- http_
get AiReasoning Engine Spec Deployment Spec Keep Alive Probe Http Get - Specifies the HTTP GET configuration for the probe. Structure is documented below.
- max_
seconds int - Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
- http
Get Property Map - Specifies the HTTP GET configuration for the probe. Structure is documented below.
- max
Seconds Number - Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
AiReasoningEngineSpecDeploymentSpecKeepAliveProbeHttpGet, AiReasoningEngineSpecDeploymentSpecKeepAliveProbeHttpGetArgs
AiReasoningEngineSpecDeploymentSpecPscInterfaceConfig, AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigArgs
- Dns
Peering List<AiConfigs Reasoning Engine Spec Deployment Spec Psc Interface Config Dns Peering Config> - Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI service Agent on the target project. Structure is documented below.
- Network
Attachment string - Optional. The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-Interface.
- Dns
Peering []AiConfigs Reasoning Engine Spec Deployment Spec Psc Interface Config Dns Peering Config - Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI service Agent on the target project. Structure is documented below.
- Network
Attachment string - Optional. The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-Interface.
- dns_
peering_ list(object)configs - Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI service Agent on the target project. Structure is documented below.
- network_
attachment string - Optional. The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-Interface.
- dns
Peering List<AiConfigs Reasoning Engine Spec Deployment Spec Psc Interface Config Dns Peering Config> - Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI service Agent on the target project. Structure is documented below.
- network
Attachment String - Optional. The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-Interface.
- dns
Peering AiConfigs Reasoning Engine Spec Deployment Spec Psc Interface Config Dns Peering Config[] - Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI service Agent on the target project. Structure is documented below.
- network
Attachment string - Optional. The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-Interface.
- dns_
peering_ Sequence[Aiconfigs Reasoning Engine Spec Deployment Spec Psc Interface Config Dns Peering Config] - Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI service Agent on the target project. Structure is documented below.
- network_
attachment str - Optional. The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-Interface.
- dns
Peering List<Property Map>Configs - Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI service Agent on the target project. Structure is documented below.
- network
Attachment String - Optional. The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-Interface.
AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfig, AiReasoningEngineSpecDeploymentSpecPscInterfaceConfigDnsPeeringConfigArgs
- Domain string
- Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
- Target
Network string - Required. The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
- Target
Project string - Required. The project id hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI service Agent requires the dns.peer role on this project.
- Domain string
- Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
- Target
Network string - Required. The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
- Target
Project string - Required. The project id hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI service Agent requires the dns.peer role on this project.
- domain string
- Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
- target_
network string - Required. The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
- target_
project string - Required. The project id hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI service Agent requires the dns.peer role on this project.
- domain String
- Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
- target
Network String - Required. The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
- target
Project String - Required. The project id hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI service Agent requires the dns.peer role on this project.
- domain string
- Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
- target
Network string - Required. The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
- target
Project string - Required. The project id hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI service Agent requires the dns.peer role on this project.
- domain str
- Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
- target_
network str - Required. The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
- target_
project str - Required. The project id hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI service Agent requires the dns.peer role on this project.
- domain String
- Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
- target
Network String - Required. The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
- target
Project String - Required. The project id hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI service Agent requires the dns.peer role on this project.
AiReasoningEngineSpecDeploymentSpecSecretEnv, AiReasoningEngineSpecDeploymentSpecSecretEnvArgs
- Name string
- The name of the environment variable. Must be a valid C identifier.
- Secret
Ref AiReasoning Engine Spec Deployment Spec Secret Env Secret Ref - Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable. Structure is documented below.
- Name string
- The name of the environment variable. Must be a valid C identifier.
- Secret
Ref AiReasoning Engine Spec Deployment Spec Secret Env Secret Ref - Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable. Structure is documented below.
- name string
- The name of the environment variable. Must be a valid C identifier.
- secret_
ref object - Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable. Structure is documented below.
- name String
- The name of the environment variable. Must be a valid C identifier.
- secret
Ref AiReasoning Engine Spec Deployment Spec Secret Env Secret Ref - Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable. Structure is documented below.
- name string
- The name of the environment variable. Must be a valid C identifier.
- secret
Ref AiReasoning Engine Spec Deployment Spec Secret Env Secret Ref - Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable. Structure is documented below.
- name str
- The name of the environment variable. Must be a valid C identifier.
- secret_
ref AiReasoning Engine Spec Deployment Spec Secret Env Secret Ref - Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable. Structure is documented below.
- name String
- The name of the environment variable. Must be a valid C identifier.
- secret
Ref Property Map - Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable. Structure is documented below.
AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRef, AiReasoningEngineSpecDeploymentSpecSecretEnvSecretRefArgs
AiReasoningEngineSpecPackageSpec, AiReasoningEngineSpecPackageSpecArgs
- Dependency
Files stringGcs Uri - Optional. The Cloud Storage URI of the dependency files in tar.gz format.
- Pickle
Object stringGcs Uri - Optional. The Cloud Storage URI of the pickled python object.
- Python
Version string - Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- Requirements
Gcs stringUri - Optional. The Cloud Storage URI of the requirements.txtfile
- Dependency
Files stringGcs Uri - Optional. The Cloud Storage URI of the dependency files in tar.gz format.
- Pickle
Object stringGcs Uri - Optional. The Cloud Storage URI of the pickled python object.
- Python
Version string - Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- Requirements
Gcs stringUri - Optional. The Cloud Storage URI of the requirements.txtfile
- dependency_
files_ stringgcs_ uri - Optional. The Cloud Storage URI of the dependency files in tar.gz format.
- pickle_
object_ stringgcs_ uri - Optional. The Cloud Storage URI of the pickled python object.
- python_
version string - Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- requirements_
gcs_ stringuri - Optional. The Cloud Storage URI of the requirements.txtfile
- dependency
Files StringGcs Uri - Optional. The Cloud Storage URI of the dependency files in tar.gz format.
- pickle
Object StringGcs Uri - Optional. The Cloud Storage URI of the pickled python object.
- python
Version String - Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- requirements
Gcs StringUri - Optional. The Cloud Storage URI of the requirements.txtfile
- dependency
Files stringGcs Uri - Optional. The Cloud Storage URI of the dependency files in tar.gz format.
- pickle
Object stringGcs Uri - Optional. The Cloud Storage URI of the pickled python object.
- python
Version string - Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- requirements
Gcs stringUri - Optional. The Cloud Storage URI of the requirements.txtfile
- dependency_
files_ strgcs_ uri - Optional. The Cloud Storage URI of the dependency files in tar.gz format.
- pickle_
object_ strgcs_ uri - Optional. The Cloud Storage URI of the pickled python object.
- python_
version str - Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- requirements_
gcs_ struri - Optional. The Cloud Storage URI of the requirements.txtfile
- dependency
Files StringGcs Uri - Optional. The Cloud Storage URI of the dependency files in tar.gz format.
- pickle
Object StringGcs Uri - Optional. The Cloud Storage URI of the pickled python object.
- python
Version String - Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- requirements
Gcs StringUri - Optional. The Cloud Storage URI of the requirements.txtfile
AiReasoningEngineSpecSourceCodeSpec, AiReasoningEngineSpecSourceCodeSpecArgs
- Agent
Config AiSource Reasoning Engine Spec Source Code Spec Agent Config Source - (Optional, Beta) Optional. Specification for the deploying from agent config. Structure is documented below.
- Developer
Connect AiSource Reasoning Engine Spec Source Code Spec Developer Connect Source - Specification for source code to be fetched from a Git repository managed through the Developer Connect service. Structure is documented below.
- Image
Spec AiReasoning Engine Spec Source Code Spec Image Spec - Configuration for building an image with custom config file. Structure is documented below.
- Inline
Source AiReasoning Engine Spec Source Code Spec Inline Source - Source code is provided directly in the request. Structure is documented below.
- Python
Spec AiReasoning Engine Spec Source Code Spec Python Spec - Specification for running a Python application from source. Structure is documented below.
- Agent
Config AiSource Reasoning Engine Spec Source Code Spec Agent Config Source - (Optional, Beta) Optional. Specification for the deploying from agent config. Structure is documented below.
- Developer
Connect AiSource Reasoning Engine Spec Source Code Spec Developer Connect Source - Specification for source code to be fetched from a Git repository managed through the Developer Connect service. Structure is documented below.
- Image
Spec AiReasoning Engine Spec Source Code Spec Image Spec - Configuration for building an image with custom config file. Structure is documented below.
- Inline
Source AiReasoning Engine Spec Source Code Spec Inline Source - Source code is provided directly in the request. Structure is documented below.
- Python
Spec AiReasoning Engine Spec Source Code Spec Python Spec - Specification for running a Python application from source. Structure is documented below.
- agent_
config_ objectsource - (Optional, Beta) Optional. Specification for the deploying from agent config. Structure is documented below.
- developer_
connect_ objectsource - Specification for source code to be fetched from a Git repository managed through the Developer Connect service. Structure is documented below.
- image_
spec object - Configuration for building an image with custom config file. Structure is documented below.
- inline_
source object - Source code is provided directly in the request. Structure is documented below.
- python_
spec object - Specification for running a Python application from source. Structure is documented below.
- agent
Config AiSource Reasoning Engine Spec Source Code Spec Agent Config Source - (Optional, Beta) Optional. Specification for the deploying from agent config. Structure is documented below.
- developer
Connect AiSource Reasoning Engine Spec Source Code Spec Developer Connect Source - Specification for source code to be fetched from a Git repository managed through the Developer Connect service. Structure is documented below.
- image
Spec AiReasoning Engine Spec Source Code Spec Image Spec - Configuration for building an image with custom config file. Structure is documented below.
- inline
Source AiReasoning Engine Spec Source Code Spec Inline Source - Source code is provided directly in the request. Structure is documented below.
- python
Spec AiReasoning Engine Spec Source Code Spec Python Spec - Specification for running a Python application from source. Structure is documented below.
- agent
Config AiSource Reasoning Engine Spec Source Code Spec Agent Config Source - (Optional, Beta) Optional. Specification for the deploying from agent config. Structure is documented below.
- developer
Connect AiSource Reasoning Engine Spec Source Code Spec Developer Connect Source - Specification for source code to be fetched from a Git repository managed through the Developer Connect service. Structure is documented below.
- image
Spec AiReasoning Engine Spec Source Code Spec Image Spec - Configuration for building an image with custom config file. Structure is documented below.
- inline
Source AiReasoning Engine Spec Source Code Spec Inline Source - Source code is provided directly in the request. Structure is documented below.
- python
Spec AiReasoning Engine Spec Source Code Spec Python Spec - Specification for running a Python application from source. Structure is documented below.
- agent_
config_ Aisource Reasoning Engine Spec Source Code Spec Agent Config Source - (Optional, Beta) Optional. Specification for the deploying from agent config. Structure is documented below.
- developer_
connect_ Aisource Reasoning Engine Spec Source Code Spec Developer Connect Source - Specification for source code to be fetched from a Git repository managed through the Developer Connect service. Structure is documented below.
- image_
spec AiReasoning Engine Spec Source Code Spec Image Spec - Configuration for building an image with custom config file. Structure is documented below.
- inline_
source AiReasoning Engine Spec Source Code Spec Inline Source - Source code is provided directly in the request. Structure is documented below.
- python_
spec AiReasoning Engine Spec Source Code Spec Python Spec - Specification for running a Python application from source. Structure is documented below.
- agent
Config Property MapSource - (Optional, Beta) Optional. Specification for the deploying from agent config. Structure is documented below.
- developer
Connect Property MapSource - Specification for source code to be fetched from a Git repository managed through the Developer Connect service. Structure is documented below.
- image
Spec Property Map - Configuration for building an image with custom config file. Structure is documented below.
- inline
Source Property Map - Source code is provided directly in the request. Structure is documented below.
- python
Spec Property Map - Specification for running a Python application from source. Structure is documented below.
AiReasoningEngineSpecSourceCodeSpecAgentConfigSource, AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceArgs
- Adk
Config AiReasoning Engine Spec Source Code Spec Agent Config Source Adk Config - Required. Configuration for the Agent Development Kit (ADK). Structure is documented below.
- Inline
Source AiReasoning Engine Spec Source Code Spec Agent Config Source Inline Source - Optional. Any additional files needed to interpret the config. Structure is documented below.
- Adk
Config AiReasoning Engine Spec Source Code Spec Agent Config Source Adk Config - Required. Configuration for the Agent Development Kit (ADK). Structure is documented below.
- Inline
Source AiReasoning Engine Spec Source Code Spec Agent Config Source Inline Source - Optional. Any additional files needed to interpret the config. Structure is documented below.
- adk_
config object - Required. Configuration for the Agent Development Kit (ADK). Structure is documented below.
- inline_
source object - Optional. Any additional files needed to interpret the config. Structure is documented below.
- adk
Config AiReasoning Engine Spec Source Code Spec Agent Config Source Adk Config - Required. Configuration for the Agent Development Kit (ADK). Structure is documented below.
- inline
Source AiReasoning Engine Spec Source Code Spec Agent Config Source Inline Source - Optional. Any additional files needed to interpret the config. Structure is documented below.
- adk
Config AiReasoning Engine Spec Source Code Spec Agent Config Source Adk Config - Required. Configuration for the Agent Development Kit (ADK). Structure is documented below.
- inline
Source AiReasoning Engine Spec Source Code Spec Agent Config Source Inline Source - Optional. Any additional files needed to interpret the config. Structure is documented below.
- adk_
config AiReasoning Engine Spec Source Code Spec Agent Config Source Adk Config - Required. Configuration for the Agent Development Kit (ADK). Structure is documented below.
- inline_
source AiReasoning Engine Spec Source Code Spec Agent Config Source Inline Source - Optional. Any additional files needed to interpret the config. Structure is documented below.
- adk
Config Property Map - Required. Configuration for the Agent Development Kit (ADK). Structure is documented below.
- inline
Source Property Map - Optional. Any additional files needed to interpret the config. Structure is documented below.
AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceAdkConfig, AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceAdkConfigArgs
- Json
Config string - Required. The value of the ADK config in JSON format.
- Json
Config string - Required. The value of the ADK config in JSON format.
- json_
config string - Required. The value of the ADK config in JSON format.
- json
Config String - Required. The value of the ADK config in JSON format.
- json
Config string - Required. The value of the ADK config in JSON format.
- json_
config str - Required. The value of the ADK config in JSON format.
- json
Config String - Required. The value of the ADK config in JSON format.
AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceInlineSource, AiReasoningEngineSpecSourceCodeSpecAgentConfigSourceInlineSourceArgs
- Source
Archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- Source
Archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source_
archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source
Archive String - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source
Archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source_
archive str - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source
Archive String - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSource, AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceArgs
- Config
Ai
Reasoning Engine Spec Source Code Spec Developer Connect Source Config - The Developer Connect configuration that defines the specific repository, revision, and directory to use as the source code root. Structure is documented below.
- Config
Ai
Reasoning Engine Spec Source Code Spec Developer Connect Source Config - The Developer Connect configuration that defines the specific repository, revision, and directory to use as the source code root. Structure is documented below.
- config
Ai
Reasoning Engine Spec Source Code Spec Developer Connect Source Config - The Developer Connect configuration that defines the specific repository, revision, and directory to use as the source code root. Structure is documented below.
- config
Ai
Reasoning Engine Spec Source Code Spec Developer Connect Source Config - The Developer Connect configuration that defines the specific repository, revision, and directory to use as the source code root. Structure is documented below.
- config
Ai
Reasoning Engine Spec Source Code Spec Developer Connect Source Config - The Developer Connect configuration that defines the specific repository, revision, and directory to use as the source code root. Structure is documented below.
- config Property Map
- The Developer Connect configuration that defines the specific repository, revision, and directory to use as the source code root. Structure is documented below.
AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfig, AiReasoningEngineSpecSourceCodeSpecDeveloperConnectSourceConfigArgs
- Dir string
- Directory, relative to the source root, in which to run the build.
- Git
Repository stringLink - The Developer Connect Git repository link, formatted as projects//locations//connections//gitRepositoryLink/.
- Revision string
- The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
- Dir string
- Directory, relative to the source root, in which to run the build.
- Git
Repository stringLink - The Developer Connect Git repository link, formatted as projects//locations//connections//gitRepositoryLink/.
- Revision string
- The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
- dir string
- Directory, relative to the source root, in which to run the build.
- git_
repository_ stringlink - The Developer Connect Git repository link, formatted as projects//locations//connections//gitRepositoryLink/.
- revision string
- The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
- dir String
- Directory, relative to the source root, in which to run the build.
- git
Repository StringLink - The Developer Connect Git repository link, formatted as projects//locations//connections//gitRepositoryLink/.
- revision String
- The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
- dir string
- Directory, relative to the source root, in which to run the build.
- git
Repository stringLink - The Developer Connect Git repository link, formatted as projects//locations//connections//gitRepositoryLink/.
- revision string
- The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
- dir str
- Directory, relative to the source root, in which to run the build.
- git_
repository_ strlink - The Developer Connect Git repository link, formatted as projects//locations//connections//gitRepositoryLink/.
- revision str
- The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
- dir String
- Directory, relative to the source root, in which to run the build.
- git
Repository StringLink - The Developer Connect Git repository link, formatted as projects//locations//connections//gitRepositoryLink/.
- revision String
- The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
AiReasoningEngineSpecSourceCodeSpecImageSpec, AiReasoningEngineSpecSourceCodeSpecImageSpecArgs
- Build
Args Dictionary<string, string> - Build arguments to be used. They will be passed through --build-arg flags.
- Build
Args map[string]string - Build arguments to be used. They will be passed through --build-arg flags.
- build_
args map(string) - Build arguments to be used. They will be passed through --build-arg flags.
- build
Args Map<String,String> - Build arguments to be used. They will be passed through --build-arg flags.
- build
Args {[key: string]: string} - Build arguments to be used. They will be passed through --build-arg flags.
- build_
args Mapping[str, str] - Build arguments to be used. They will be passed through --build-arg flags.
- build
Args Map<String> - Build arguments to be used. They will be passed through --build-arg flags.
AiReasoningEngineSpecSourceCodeSpecInlineSource, AiReasoningEngineSpecSourceCodeSpecInlineSourceArgs
- Source
Archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- Source
Archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source_
archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source
Archive String - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source
Archive string - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source_
archive str - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
- source
Archive String - Required. Input only. The application source code archive, provided as a compressed tarball (.tar.gz) file.
AiReasoningEngineSpecSourceCodeSpecPythonSpec, AiReasoningEngineSpecSourceCodeSpecPythonSpecArgs
- Entrypoint
Module string - Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root.
- Entrypoint
Object string - Optional. The name of the callable object within the entrypointModule to use as the application If not specified, defaults to "rootAgent".
- Requirements
File string - Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
- Version string
- Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- Entrypoint
Module string - Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root.
- Entrypoint
Object string - Optional. The name of the callable object within the entrypointModule to use as the application If not specified, defaults to "rootAgent".
- Requirements
File string - Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
- Version string
- Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- entrypoint_
module string - Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root.
- entrypoint_
object string - Optional. The name of the callable object within the entrypointModule to use as the application If not specified, defaults to "rootAgent".
- requirements_
file string - Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
- version string
- Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- entrypoint
Module String - Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root.
- entrypoint
Object String - Optional. The name of the callable object within the entrypointModule to use as the application If not specified, defaults to "rootAgent".
- requirements
File String - Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
- version String
- Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- entrypoint
Module string - Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root.
- entrypoint
Object string - Optional. The name of the callable object within the entrypointModule to use as the application If not specified, defaults to "rootAgent".
- requirements
File string - Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
- version string
- Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- entrypoint_
module str - Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root.
- entrypoint_
object str - Optional. The name of the callable object within the entrypointModule to use as the application If not specified, defaults to "rootAgent".
- requirements_
file str - Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
- version str
- Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
- entrypoint
Module String - Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root.
- entrypoint
Object String - Optional. The name of the callable object within the entrypointModule to use as the application If not specified, defaults to "rootAgent".
- requirements
File String - Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
- version String
- Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
AiReasoningEngineTrafficConfig, AiReasoningEngineTrafficConfigArgs
- Traffic
Split AiAlways Latest Reasoning Engine Traffic Config Traffic Split Always Latest - Optional. Traffic distribution configuration, where all traffic is sent to the latest Runtime Revision.
- Traffic
Split AiManual Reasoning Engine Traffic Config Traffic Split Manual - Optional. Manual traffic distribution configuration, where the user specifies the Runtime Revision IDs and the percentage of traffic to send to each. Structure is documented below.
- Traffic
Split AiAlways Latest Reasoning Engine Traffic Config Traffic Split Always Latest - Optional. Traffic distribution configuration, where all traffic is sent to the latest Runtime Revision.
- Traffic
Split AiManual Reasoning Engine Traffic Config Traffic Split Manual - Optional. Manual traffic distribution configuration, where the user specifies the Runtime Revision IDs and the percentage of traffic to send to each. Structure is documented below.
- traffic_
split_ objectalways_ latest - Optional. Traffic distribution configuration, where all traffic is sent to the latest Runtime Revision.
- traffic_
split_ objectmanual - Optional. Manual traffic distribution configuration, where the user specifies the Runtime Revision IDs and the percentage of traffic to send to each. Structure is documented below.
- traffic
Split AiAlways Latest Reasoning Engine Traffic Config Traffic Split Always Latest - Optional. Traffic distribution configuration, where all traffic is sent to the latest Runtime Revision.
- traffic
Split AiManual Reasoning Engine Traffic Config Traffic Split Manual - Optional. Manual traffic distribution configuration, where the user specifies the Runtime Revision IDs and the percentage of traffic to send to each. Structure is documented below.
- traffic
Split AiAlways Latest Reasoning Engine Traffic Config Traffic Split Always Latest - Optional. Traffic distribution configuration, where all traffic is sent to the latest Runtime Revision.
- traffic
Split AiManual Reasoning Engine Traffic Config Traffic Split Manual - Optional. Manual traffic distribution configuration, where the user specifies the Runtime Revision IDs and the percentage of traffic to send to each. Structure is documented below.
- traffic_
split_ Aialways_ latest Reasoning Engine Traffic Config Traffic Split Always Latest - Optional. Traffic distribution configuration, where all traffic is sent to the latest Runtime Revision.
- traffic_
split_ Aimanual Reasoning Engine Traffic Config Traffic Split Manual - Optional. Manual traffic distribution configuration, where the user specifies the Runtime Revision IDs and the percentage of traffic to send to each. Structure is documented below.
- traffic
Split Property MapAlways Latest - Optional. Traffic distribution configuration, where all traffic is sent to the latest Runtime Revision.
- traffic
Split Property MapManual - Optional. Manual traffic distribution configuration, where the user specifies the Runtime Revision IDs and the percentage of traffic to send to each. Structure is documented below.
AiReasoningEngineTrafficConfigTrafficSplitManual, AiReasoningEngineTrafficConfigTrafficSplitManualArgs
- Targets
List<Ai
Reasoning Engine Traffic Config Traffic Split Manual Target> - Optional. A list of traffic targets for the Runtimes Revisions. The sum of percentages must equal to 100. Structure is documented below.
- Targets
[]Ai
Reasoning Engine Traffic Config Traffic Split Manual Target - Optional. A list of traffic targets for the Runtimes Revisions. The sum of percentages must equal to 100. Structure is documented below.
- targets list(object)
- Optional. A list of traffic targets for the Runtimes Revisions. The sum of percentages must equal to 100. Structure is documented below.
- targets
List<Ai
Reasoning Engine Traffic Config Traffic Split Manual Target> - Optional. A list of traffic targets for the Runtimes Revisions. The sum of percentages must equal to 100. Structure is documented below.
- targets
Ai
Reasoning Engine Traffic Config Traffic Split Manual Target[] - Optional. A list of traffic targets for the Runtimes Revisions. The sum of percentages must equal to 100. Structure is documented below.
- targets
Sequence[Ai
Reasoning Engine Traffic Config Traffic Split Manual Target] - Optional. A list of traffic targets for the Runtimes Revisions. The sum of percentages must equal to 100. Structure is documented below.
- targets List<Property Map>
- Optional. A list of traffic targets for the Runtimes Revisions. The sum of percentages must equal to 100. Structure is documented below.
AiReasoningEngineTrafficConfigTrafficSplitManualTarget, AiReasoningEngineTrafficConfigTrafficSplitManualTargetArgs
- Percent int
- Required. Specifies percent of the traffic to this Runtime Revision.
- Runtime
Revision stringName - Required. The Runtime Revision name to which to send this portion of traffic. Accepts revision IDs, short names (e.g.
rev-1), or keywords such asLATESTandPREVIOUS. Note: Keywords likeLATESTandPREVIOUSresolve at apply time to the concrete underlying revision ID and remain pinned untiltrafficConfigis updated in Terraform.
- Percent int
- Required. Specifies percent of the traffic to this Runtime Revision.
- Runtime
Revision stringName - Required. The Runtime Revision name to which to send this portion of traffic. Accepts revision IDs, short names (e.g.
rev-1), or keywords such asLATESTandPREVIOUS. Note: Keywords likeLATESTandPREVIOUSresolve at apply time to the concrete underlying revision ID and remain pinned untiltrafficConfigis updated in Terraform.
- percent number
- Required. Specifies percent of the traffic to this Runtime Revision.
- runtime_
revision_ stringname - Required. The Runtime Revision name to which to send this portion of traffic. Accepts revision IDs, short names (e.g.
rev-1), or keywords such asLATESTandPREVIOUS. Note: Keywords likeLATESTandPREVIOUSresolve at apply time to the concrete underlying revision ID and remain pinned untiltrafficConfigis updated in Terraform.
- percent Integer
- Required. Specifies percent of the traffic to this Runtime Revision.
- runtime
Revision StringName - Required. The Runtime Revision name to which to send this portion of traffic. Accepts revision IDs, short names (e.g.
rev-1), or keywords such asLATESTandPREVIOUS. Note: Keywords likeLATESTandPREVIOUSresolve at apply time to the concrete underlying revision ID and remain pinned untiltrafficConfigis updated in Terraform.
- percent number
- Required. Specifies percent of the traffic to this Runtime Revision.
- runtime
Revision stringName - Required. The Runtime Revision name to which to send this portion of traffic. Accepts revision IDs, short names (e.g.
rev-1), or keywords such asLATESTandPREVIOUS. Note: Keywords likeLATESTandPREVIOUSresolve at apply time to the concrete underlying revision ID and remain pinned untiltrafficConfigis updated in Terraform.
- percent int
- Required. Specifies percent of the traffic to this Runtime Revision.
- runtime_
revision_ strname - Required. The Runtime Revision name to which to send this portion of traffic. Accepts revision IDs, short names (e.g.
rev-1), or keywords such asLATESTandPREVIOUS. Note: Keywords likeLATESTandPREVIOUSresolve at apply time to the concrete underlying revision ID and remain pinned untiltrafficConfigis updated in Terraform.
- percent Number
- Required. Specifies percent of the traffic to this Runtime Revision.
- runtime
Revision StringName - Required. The Runtime Revision name to which to send this portion of traffic. Accepts revision IDs, short names (e.g.
rev-1), or keywords such asLATESTandPREVIOUS. Note: Keywords likeLATESTandPREVIOUSresolve at apply time to the concrete underlying revision ID and remain pinned untiltrafficConfigis updated in Terraform.
Import
ReasoningEngine can be imported using any of these accepted formats:
projects/{{project}}/locations/{{region}}/reasoningEngines/{{name}}{{project}}/{{region}}/{{name}}{{region}}/{{name}}{{name}}
When using the pulumi import command, ReasoningEngine can be imported using one of the formats above. For example:
$ pulumi import gcp:vertex/aiReasoningEngine:AiReasoningEngine default projects/{{project}}/locations/{{region}}/reasoningEngines/{{name}}
$ pulumi import gcp:vertex/aiReasoningEngine:AiReasoningEngine default {{project}}/{{region}}/{{name}}
$ pulumi import gcp:vertex/aiReasoningEngine:AiReasoningEngine default {{region}}/{{name}}
$ pulumi import gcp:vertex/aiReasoningEngine:AiReasoningEngine default {{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-betaTerraform Provider.
published on Monday, Aug 10, 2026 by Pulumi