Guardrail class

Description

Example Usage

Ces Guardrail Basic

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const cesAppForGuardrail = new gcp.ces.App("ces_app_for_guardrail", {
    appId: "app-id",
    location: "us",
    description: "App used as parent for CES Toolset example",
    displayName: "my-app",
    languageSettings: {
        defaultLanguageCode: "en-US",
        supportedLanguageCodes: [
            "es-ES",
            "fr-FR",
        ],
        enableMultilingualSupport: true,
        fallbackAction: "escalate",
    },
    timeZoneSettings: {
        timeZone: "America/Los_Angeles",
    },
});
const cesGuardrailBasic = new gcp.ces.Guardrail("ces_guardrail_basic", {
    guardrailId: "guardrail-id",
    location: cesAppForGuardrail.location,
    app: cesAppForGuardrail.appId,
    displayName: "my-guardrail",
    description: "Guardrail description",
    action: {
        respondImmediately: {
            responses: [{
                text: "Text",
                disabled: false,
            }],
        },
    },
    enabled: true,
    modelSafety: {
        safetySettings: [{
            category: "HARM_CATEGORY_HATE_SPEECH",
            threshold: "BLOCK_NONE",
        }],
    },
});
import pulumi
import pulumi_gcp as gcp

ces_app_for_guardrail = gcp.ces.App("ces_app_for_guardrail",
    app_id="app-id",
    location="us",
    description="App used as parent for CES Toolset example",
    display_name="my-app",
    language_settings={
        "default_language_code": "en-US",
        "supported_language_codes": [
            "es-ES",
            "fr-FR",
        ],
        "enable_multilingual_support": True,
        "fallback_action": "escalate",
    },
    time_zone_settings={
        "time_zone": "America/Los_Angeles",
    })
ces_guardrail_basic = gcp.ces.Guardrail("ces_guardrail_basic",
    guardrail_id="guardrail-id",
    location=ces_app_for_guardrail.location,
    app=ces_app_for_guardrail.app_id,
    display_name="my-guardrail",
    description="Guardrail description",
    action={
        "respond_immediately": {
            "responses": [{
                "text": "Text",
                "disabled": False,
            }],
        },
    },
    enabled=True,
    model_safety={
        "safety_settings": [{
            "category": "HARM_CATEGORY_HATE_SPEECH",
            "threshold": "BLOCK_NONE",
        }],
    })
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var cesAppForGuardrail = new Gcp.Ces.App("ces_app_for_guardrail", new()
    {
        AppId = "app-id",
        Location = "us",
        Description = "App used as parent for CES Toolset example",
        DisplayName = "my-app",
        LanguageSettings = new Gcp.Ces.Inputs.AppLanguageSettingsArgs
        {
            DefaultLanguageCode = "en-US",
            SupportedLanguageCodes = new[]
            {
                "es-ES",
                "fr-FR",
            },
            EnableMultilingualSupport = true,
            FallbackAction = "escalate",
        },
        TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
        {
            TimeZone = "America/Los_Angeles",
        },
    });

    var cesGuardrailBasic = new Gcp.Ces.Guardrail("ces_guardrail_basic", new()
    {
        GuardrailId = "guardrail-id",
        Location = cesAppForGuardrail.Location,
        App = cesAppForGuardrail.AppId,
        DisplayName = "my-guardrail",
        Description = "Guardrail description",
        Action = new Gcp.Ces.Inputs.GuardrailActionArgs
        {
            RespondImmediately = new Gcp.Ces.Inputs.GuardrailActionRespondImmediatelyArgs
            {
                Responses = new[]
                {
                    new Gcp.Ces.Inputs.GuardrailActionRespondImmediatelyResponseArgs
                    {
                        Text = "Text",
                        Disabled = false,
                    },
                },
            },
        },
        Enabled = true,
        ModelSafety = new Gcp.Ces.Inputs.GuardrailModelSafetyArgs
        {
            SafetySettings = new[]
            {
                new Gcp.Ces.Inputs.GuardrailModelSafetySafetySettingArgs
                {
                    Category = "HARM_CATEGORY_HATE_SPEECH",
                    Threshold = "BLOCK_NONE",
                },
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cesAppForGuardrail, err := ces.NewApp(ctx, "ces_app_for_guardrail", &ces.AppArgs{
			AppId:       pulumi.String("app-id"),
			Location:    pulumi.String("us"),
			Description: pulumi.String("App used as parent for CES Toolset example"),
			DisplayName: pulumi.String("my-app"),
			LanguageSettings: &ces.AppLanguageSettingsArgs{
				DefaultLanguageCode: pulumi.String("en-US"),
				SupportedLanguageCodes: pulumi.StringArray{
					pulumi.String("es-ES"),
					pulumi.String("fr-FR"),
				},
				EnableMultilingualSupport: pulumi.Bool(true),
				FallbackAction:            pulumi.String("escalate"),
			},
			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
				TimeZone: pulumi.String("America/Los_Angeles"),
			},
		})
		if err != nil {
			return err
		}
		_, err = ces.NewGuardrail(ctx, "ces_guardrail_basic", &ces.GuardrailArgs{
			GuardrailId: pulumi.String("guardrail-id"),
			Location:    cesAppForGuardrail.Location,
			App:         cesAppForGuardrail.AppId,
			DisplayName: pulumi.String("my-guardrail"),
			Description: pulumi.String("Guardrail description"),
			Action: &ces.GuardrailActionArgs{
				RespondImmediately: &ces.GuardrailActionRespondImmediatelyArgs{
					Responses: ces.GuardrailActionRespondImmediatelyResponseArray{
						&ces.GuardrailActionRespondImmediatelyResponseArgs{
							Text:     pulumi.String("Text"),
							Disabled: pulumi.Bool(false),
						},
					},
				},
			},
			Enabled: pulumi.Bool(true),
			ModelSafety: &ces.GuardrailModelSafetyArgs{
				SafetySettings: ces.GuardrailModelSafetySafetySettingArray{
					&ces.GuardrailModelSafetySafetySettingArgs{
						Category:  pulumi.String("HARM_CATEGORY_HATE_SPEECH"),
						Threshold: pulumi.String("BLOCK_NONE"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_ces_app" "ces_app_for_guardrail" {
  app_id       = "app-id"
  location     = "us"
  description  = "App used as parent for CES Toolset example"
  display_name = "my-app"
  language_settings = {
    default_language_code       = "en-US"
    supported_language_codes    = ["es-ES", "fr-FR"]
    enable_multilingual_support = true
    fallback_action             = "escalate"
  }
  time_zone_settings = {
    time_zone = "America/Los_Angeles"
  }
}
resource "gcp_ces_guardrail" "ces_guardrail_basic" {
  guardrail_id = "guardrail-id"
  location     = gcp_ces_app.ces_app_for_guardrail.location
  app          = gcp_ces_app.ces_app_for_guardrail.app_id
  display_name = "my-guardrail"
  description  = "Guardrail description"
  action = {
    respond_immediately = {
      responses = [{
        "text"     = "Text"
        "disabled" = false
      }]
    }
  }
  enabled = true
  model_safety = {
    safety_settings = [{
      "category"  = "HARM_CATEGORY_HATE_SPEECH"
      "threshold" = "BLOCK_NONE"
    }]
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.ces.App;
import com.pulumi.gcp.ces.AppArgs;
import com.pulumi.gcp.ces.inputs.AppLanguageSettingsArgs;
import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
import com.pulumi.gcp.ces.Guardrail;
import com.pulumi.gcp.ces.GuardrailArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionRespondImmediatelyArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionRespondImmediatelyResponseArgs;
import com.pulumi.gcp.ces.inputs.GuardrailModelSafetyArgs;
import com.pulumi.gcp.ces.inputs.GuardrailModelSafetySafetySettingArgs;
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 cesAppForGuardrail = new App("cesAppForGuardrail", AppArgs.builder()
            .appId("app-id")
            .location("us")
            .description("App used as parent for CES Toolset example")
            .displayName("my-app")
            .languageSettings(AppLanguageSettingsArgs.builder()
                .defaultLanguageCode("en-US")
                .supportedLanguageCodes(
                    "es-ES",
                    "fr-FR")
                .enableMultilingualSupport(true)
                .fallbackAction("escalate")
                .build())
            .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                .timeZone("America/Los_Angeles")
                .build())
            .build());

        var cesGuardrailBasic = new Guardrail("cesGuardrailBasic", GuardrailArgs.builder()
            .guardrailId("guardrail-id")
            .location(cesAppForGuardrail.location())
            .app(cesAppForGuardrail.appId())
            .displayName("my-guardrail")
            .description("Guardrail description")
            .action(GuardrailActionArgs.builder()
                .respondImmediately(GuardrailActionRespondImmediatelyArgs.builder()
                    .responses(GuardrailActionRespondImmediatelyResponseArgs.builder()
                        .text("Text")
                        .disabled(false)
                        .build())
                    .build())
                .build())
            .enabled(true)
            .modelSafety(GuardrailModelSafetyArgs.builder()
                .safetySettings(GuardrailModelSafetySafetySettingArgs.builder()
                    .category("HARM_CATEGORY_HATE_SPEECH")
                    .threshold("BLOCK_NONE")
                    .build())
                .build())
            .build());

    }
}
resources:
  cesAppForGuardrail:
    type: gcp:ces:App
    name: ces_app_for_guardrail
    properties:
      appId: app-id
      location: us
      description: App used as parent for CES Toolset example
      displayName: my-app
      languageSettings:
        defaultLanguageCode: en-US
        supportedLanguageCodes:
          - es-ES
          - fr-FR
        enableMultilingualSupport: true
        fallbackAction: escalate
      timeZoneSettings:
        timeZone: America/Los_Angeles
  cesGuardrailBasic:
    type: gcp:ces:Guardrail
    name: ces_guardrail_basic
    properties:
      guardrailId: guardrail-id
      location: ${cesAppForGuardrail.location}
      app: ${cesAppForGuardrail.appId}
      displayName: my-guardrail
      description: Guardrail description
      action:
        respondImmediately:
          responses:
            - text: Text
              disabled: false
      enabled: true
      modelSafety:
        safetySettings:
          - category: HARM_CATEGORY_HATE_SPEECH
            threshold: BLOCK_NONE

Ces Guardrail Transfer Agent Content Filter

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const cesAppForGuardrail = new gcp.ces.App("ces_app_for_guardrail", {
    appId: "app-id",
    location: "us",
    description: "App used as parent for CES Toolset example",
    displayName: "my-app",
    languageSettings: {
        defaultLanguageCode: "en-US",
        supportedLanguageCodes: [
            "es-ES",
            "fr-FR",
        ],
        enableMultilingualSupport: true,
        fallbackAction: "escalate",
    },
    timeZoneSettings: {
        timeZone: "America/Los_Angeles",
    },
});
const cesGuardrailTransferAgentContentFilter = new gcp.ces.Guardrail("ces_guardrail_transfer_agent_content_filter", {
    guardrailId: "guardrail-id",
    location: cesAppForGuardrail.location,
    app: cesAppForGuardrail.appId,
    displayName: "my-guardrail",
    description: "Guardrail description",
    action: {
        transferAgent: {
            agent: pulumi.interpolate`projects/${cesAppForGuardrail.project}/locations/us/apps/${cesAppForGuardrail.appId}/agents/fake-agent`,
        },
    },
    enabled: true,
    contentFilter: {
        bannedContents: ["example"],
        bannedContentsInUserInputs: ["example"],
        bannedContentsInAgentResponses: ["example"],
        matchType: "SIMPLE_STRING_MATCH",
        disregardDiacritics: true,
    },
});
import pulumi
import pulumi_gcp as gcp

ces_app_for_guardrail = gcp.ces.App("ces_app_for_guardrail",
    app_id="app-id",
    location="us",
    description="App used as parent for CES Toolset example",
    display_name="my-app",
    language_settings={
        "default_language_code": "en-US",
        "supported_language_codes": [
            "es-ES",
            "fr-FR",
        ],
        "enable_multilingual_support": True,
        "fallback_action": "escalate",
    },
    time_zone_settings={
        "time_zone": "America/Los_Angeles",
    })
ces_guardrail_transfer_agent_content_filter = gcp.ces.Guardrail("ces_guardrail_transfer_agent_content_filter",
    guardrail_id="guardrail-id",
    location=ces_app_for_guardrail.location,
    app=ces_app_for_guardrail.app_id,
    display_name="my-guardrail",
    description="Guardrail description",
    action={
        "transfer_agent": {
            "agent": pulumi.Output.all(
                project=ces_app_for_guardrail.project,
                app_id=ces_app_for_guardrail.app_id
).apply(lambda resolved_outputs: f"projects/{resolved_outputs['project']}/locations/us/apps/{resolved_outputs['app_id']}/agents/fake-agent")
,
        },
    },
    enabled=True,
    content_filter={
        "banned_contents": ["example"],
        "banned_contents_in_user_inputs": ["example"],
        "banned_contents_in_agent_responses": ["example"],
        "match_type": "SIMPLE_STRING_MATCH",
        "disregard_diacritics": True,
    })
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var cesAppForGuardrail = new Gcp.Ces.App("ces_app_for_guardrail", new()
    {
        AppId = "app-id",
        Location = "us",
        Description = "App used as parent for CES Toolset example",
        DisplayName = "my-app",
        LanguageSettings = new Gcp.Ces.Inputs.AppLanguageSettingsArgs
        {
            DefaultLanguageCode = "en-US",
            SupportedLanguageCodes = new[]
            {
                "es-ES",
                "fr-FR",
            },
            EnableMultilingualSupport = true,
            FallbackAction = "escalate",
        },
        TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
        {
            TimeZone = "America/Los_Angeles",
        },
    });

    var cesGuardrailTransferAgentContentFilter = new Gcp.Ces.Guardrail("ces_guardrail_transfer_agent_content_filter", new()
    {
        GuardrailId = "guardrail-id",
        Location = cesAppForGuardrail.Location,
        App = cesAppForGuardrail.AppId,
        DisplayName = "my-guardrail",
        Description = "Guardrail description",
        Action = new Gcp.Ces.Inputs.GuardrailActionArgs
        {
            TransferAgent = new Gcp.Ces.Inputs.GuardrailActionTransferAgentArgs
            {
                Agent = Output.Tuple(cesAppForGuardrail.Project, cesAppForGuardrail.AppId).Apply(values =>
                {
                    var project = values.Item1;
                    var appId = values.Item2;
                    return $"projects/{project}/locations/us/apps/{appId}/agents/fake-agent";
                }),
            },
        },
        Enabled = true,
        ContentFilter = new Gcp.Ces.Inputs.GuardrailContentFilterArgs
        {
            BannedContents = new[]
            {
                "example",
            },
            BannedContentsInUserInputs = new[]
            {
                "example",
            },
            BannedContentsInAgentResponses = new[]
            {
                "example",
            },
            MatchType = "SIMPLE_STRING_MATCH",
            DisregardDiacritics = true,
        },
    });

});
package main

import (
	"fmt"

	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cesAppForGuardrail, err := ces.NewApp(ctx, "ces_app_for_guardrail", &ces.AppArgs{
			AppId:       pulumi.String("app-id"),
			Location:    pulumi.String("us"),
			Description: pulumi.String("App used as parent for CES Toolset example"),
			DisplayName: pulumi.String("my-app"),
			LanguageSettings: &ces.AppLanguageSettingsArgs{
				DefaultLanguageCode: pulumi.String("en-US"),
				SupportedLanguageCodes: pulumi.StringArray{
					pulumi.String("es-ES"),
					pulumi.String("fr-FR"),
				},
				EnableMultilingualSupport: pulumi.Bool(true),
				FallbackAction:            pulumi.String("escalate"),
			},
			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
				TimeZone: pulumi.String("America/Los_Angeles"),
			},
		})
		if err != nil {
			return err
		}
		_, err = ces.NewGuardrail(ctx, "ces_guardrail_transfer_agent_content_filter", &ces.GuardrailArgs{
			GuardrailId: pulumi.String("guardrail-id"),
			Location:    cesAppForGuardrail.Location,
			App:         cesAppForGuardrail.AppId,
			DisplayName: pulumi.String("my-guardrail"),
			Description: pulumi.String("Guardrail description"),
			Action: &ces.GuardrailActionArgs{
				TransferAgent: &ces.GuardrailActionTransferAgentArgs{
					Agent: pulumi.All(cesAppForGuardrail.Project, cesAppForGuardrail.AppId).ApplyT(func(_args []interface{}) (string, error) {
						project := _args[0].(string)
						appId := _args[1].(string)
						return fmt.Sprintf("projects/%v/locations/us/apps/%v/agents/fake-agent", project, appId), nil
					}).(pulumi.StringOutput),
				},
			},
			Enabled: pulumi.Bool(true),
			ContentFilter: &ces.GuardrailContentFilterArgs{
				BannedContents: pulumi.StringArray{
					pulumi.String("example"),
				},
				BannedContentsInUserInputs: pulumi.StringArray{
					pulumi.String("example"),
				},
				BannedContentsInAgentResponses: pulumi.StringArray{
					pulumi.String("example"),
				},
				MatchType:           pulumi.String("SIMPLE_STRING_MATCH"),
				DisregardDiacritics: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_ces_app" "ces_app_for_guardrail" {
  app_id       = "app-id"
  location     = "us"
  description  = "App used as parent for CES Toolset example"
  display_name = "my-app"
  language_settings = {
    default_language_code       = "en-US"
    supported_language_codes    = ["es-ES", "fr-FR"]
    enable_multilingual_support = true
    fallback_action             = "escalate"
  }
  time_zone_settings = {
    time_zone = "America/Los_Angeles"
  }
}
resource "gcp_ces_guardrail" "ces_guardrail_transfer_agent_content_filter" {
  guardrail_id = "guardrail-id"
  location     = gcp_ces_app.ces_app_for_guardrail.location
  app          = gcp_ces_app.ces_app_for_guardrail.app_id
  display_name = "my-guardrail"
  description  = "Guardrail description"
  action = {
    transfer_agent = {
      agent ="projects/${gcp_ces_app.ces_app_for_guardrail.project}/locations/us/apps/${gcp_ces_app.ces_app_for_guardrail.app_id}/agents/fake-agent"
    }
  }
  enabled = true
  content_filter = {
    banned_contents                    = ["example"]
    banned_contents_in_user_inputs     = ["example"]
    banned_contents_in_agent_responses = ["example"]
    match_type                         = "SIMPLE_STRING_MATCH"
    disregard_diacritics               = true
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.ces.App;
import com.pulumi.gcp.ces.AppArgs;
import com.pulumi.gcp.ces.inputs.AppLanguageSettingsArgs;
import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
import com.pulumi.gcp.ces.Guardrail;
import com.pulumi.gcp.ces.GuardrailArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionTransferAgentArgs;
import com.pulumi.gcp.ces.inputs.GuardrailContentFilterArgs;
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 cesAppForGuardrail = new App("cesAppForGuardrail", AppArgs.builder()
            .appId("app-id")
            .location("us")
            .description("App used as parent for CES Toolset example")
            .displayName("my-app")
            .languageSettings(AppLanguageSettingsArgs.builder()
                .defaultLanguageCode("en-US")
                .supportedLanguageCodes(
                    "es-ES",
                    "fr-FR")
                .enableMultilingualSupport(true)
                .fallbackAction("escalate")
                .build())
            .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                .timeZone("America/Los_Angeles")
                .build())
            .build());

        var cesGuardrailTransferAgentContentFilter = new Guardrail("cesGuardrailTransferAgentContentFilter", GuardrailArgs.builder()
            .guardrailId("guardrail-id")
            .location(cesAppForGuardrail.location())
            .app(cesAppForGuardrail.appId())
            .displayName("my-guardrail")
            .description("Guardrail description")
            .action(GuardrailActionArgs.builder()
                .transferAgent(GuardrailActionTransferAgentArgs.builder()
                    .agent(Output.tuple(cesAppForGuardrail.project(), cesAppForGuardrail.appId()).applyValue(values -> {
                        var project = values.t1;
                        var appId = values.t2;
                        return String.format("projects/%s/locations/us/apps/%s/agents/fake-agent", project,appId);
                    }))
                    .build())
                .build())
            .enabled(true)
            .contentFilter(GuardrailContentFilterArgs.builder()
                .bannedContents("example")
                .bannedContentsInUserInputs("example")
                .bannedContentsInAgentResponses("example")
                .matchType("SIMPLE_STRING_MATCH")
                .disregardDiacritics(true)
                .build())
            .build());

    }
}
resources:
  cesAppForGuardrail:
    type: gcp:ces:App
    name: ces_app_for_guardrail
    properties:
      appId: app-id
      location: us
      description: App used as parent for CES Toolset example
      displayName: my-app
      languageSettings:
        defaultLanguageCode: en-US
        supportedLanguageCodes:
          - es-ES
          - fr-FR
        enableMultilingualSupport: true
        fallbackAction: escalate
      timeZoneSettings:
        timeZone: America/Los_Angeles
  cesGuardrailTransferAgentContentFilter:
    type: gcp:ces:Guardrail
    name: ces_guardrail_transfer_agent_content_filter
    properties:
      guardrailId: guardrail-id
      location: ${cesAppForGuardrail.location}
      app: ${cesAppForGuardrail.appId}
      displayName: my-guardrail
      description: Guardrail description
      action:
        transferAgent:
          agent: projects/${cesAppForGuardrail.project}/locations/us/apps/${cesAppForGuardrail.appId}/agents/fake-agent
      enabled: true
      contentFilter:
        bannedContents:
          - example
        bannedContentsInUserInputs:
          - example
        bannedContentsInAgentResponses:
          - example
        matchType: SIMPLE_STRING_MATCH
        disregardDiacritics: true

Ces Guardrail Generative Answer Llm Prompt Security

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const cesAppForGuardrail = new gcp.ces.App("ces_app_for_guardrail", {
    appId: "app-id",
    location: "us",
    description: "App used as parent for CES Toolset example",
    displayName: "my-app",
    languageSettings: {
        defaultLanguageCode: "en-US",
        supportedLanguageCodes: [
            "es-ES",
            "fr-FR",
        ],
        enableMultilingualSupport: true,
        fallbackAction: "escalate",
    },
    timeZoneSettings: {
        timeZone: "America/Los_Angeles",
    },
});
const cesGuardrailGenerativeAnswerLlmPromptSecurity = new gcp.ces.Guardrail("ces_guardrail_generative_answer_llm_prompt_security", {
    guardrailId: "guardrail-id",
    location: cesAppForGuardrail.location,
    app: cesAppForGuardrail.appId,
    displayName: "my-guardrail",
    description: "Guardrail description",
    action: {
        generativeAnswer: {
            prompt: "example_prompt",
        },
    },
    enabled: true,
    llmPromptSecurity: {
        customPolicy: {
            maxConversationMessages: 10,
            modelSettings: {
                model: "gemini-3.0-flash-001",
                temperature: 50,
            },
            prompt: "example_prompt",
            policyScope: "USER_QUERY",
            failOpen: true,
            allowShortUtterance: true,
        },
    },
});
import pulumi
import pulumi_gcp as gcp

ces_app_for_guardrail = gcp.ces.App("ces_app_for_guardrail",
    app_id="app-id",
    location="us",
    description="App used as parent for CES Toolset example",
    display_name="my-app",
    language_settings={
        "default_language_code": "en-US",
        "supported_language_codes": [
            "es-ES",
            "fr-FR",
        ],
        "enable_multilingual_support": True,
        "fallback_action": "escalate",
    },
    time_zone_settings={
        "time_zone": "America/Los_Angeles",
    })
ces_guardrail_generative_answer_llm_prompt_security = gcp.ces.Guardrail("ces_guardrail_generative_answer_llm_prompt_security",
    guardrail_id="guardrail-id",
    location=ces_app_for_guardrail.location,
    app=ces_app_for_guardrail.app_id,
    display_name="my-guardrail",
    description="Guardrail description",
    action={
        "generative_answer": {
            "prompt": "example_prompt",
        },
    },
    enabled=True,
    llm_prompt_security={
        "custom_policy": {
            "max_conversation_messages": 10,
            "model_settings": {
                "model": "gemini-3.0-flash-001",
                "temperature": float(50),
            },
            "prompt": "example_prompt",
            "policy_scope": "USER_QUERY",
            "fail_open": True,
            "allow_short_utterance": True,
        },
    })
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var cesAppForGuardrail = new Gcp.Ces.App("ces_app_for_guardrail", new()
    {
        AppId = "app-id",
        Location = "us",
        Description = "App used as parent for CES Toolset example",
        DisplayName = "my-app",
        LanguageSettings = new Gcp.Ces.Inputs.AppLanguageSettingsArgs
        {
            DefaultLanguageCode = "en-US",
            SupportedLanguageCodes = new[]
            {
                "es-ES",
                "fr-FR",
            },
            EnableMultilingualSupport = true,
            FallbackAction = "escalate",
        },
        TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
        {
            TimeZone = "America/Los_Angeles",
        },
    });

    var cesGuardrailGenerativeAnswerLlmPromptSecurity = new Gcp.Ces.Guardrail("ces_guardrail_generative_answer_llm_prompt_security", new()
    {
        GuardrailId = "guardrail-id",
        Location = cesAppForGuardrail.Location,
        App = cesAppForGuardrail.AppId,
        DisplayName = "my-guardrail",
        Description = "Guardrail description",
        Action = new Gcp.Ces.Inputs.GuardrailActionArgs
        {
            GenerativeAnswer = new Gcp.Ces.Inputs.GuardrailActionGenerativeAnswerArgs
            {
                Prompt = "example_prompt",
            },
        },
        Enabled = true,
        LlmPromptSecurity = new Gcp.Ces.Inputs.GuardrailLlmPromptSecurityArgs
        {
            CustomPolicy = new Gcp.Ces.Inputs.GuardrailLlmPromptSecurityCustomPolicyArgs
            {
                MaxConversationMessages = 10,
                ModelSettings = new Gcp.Ces.Inputs.GuardrailLlmPromptSecurityCustomPolicyModelSettingsArgs
                {
                    Model = "gemini-3.0-flash-001",
                    Temperature = 50.0,
                },
                Prompt = "example_prompt",
                PolicyScope = "USER_QUERY",
                FailOpen = true,
                AllowShortUtterance = true,
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cesAppForGuardrail, err := ces.NewApp(ctx, "ces_app_for_guardrail", &ces.AppArgs{
			AppId:       pulumi.String("app-id"),
			Location:    pulumi.String("us"),
			Description: pulumi.String("App used as parent for CES Toolset example"),
			DisplayName: pulumi.String("my-app"),
			LanguageSettings: &ces.AppLanguageSettingsArgs{
				DefaultLanguageCode: pulumi.String("en-US"),
				SupportedLanguageCodes: pulumi.StringArray{
					pulumi.String("es-ES"),
					pulumi.String("fr-FR"),
				},
				EnableMultilingualSupport: pulumi.Bool(true),
				FallbackAction:            pulumi.String("escalate"),
			},
			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
				TimeZone: pulumi.String("America/Los_Angeles"),
			},
		})
		if err != nil {
			return err
		}
		_, err = ces.NewGuardrail(ctx, "ces_guardrail_generative_answer_llm_prompt_security", &ces.GuardrailArgs{
			GuardrailId: pulumi.String("guardrail-id"),
			Location:    cesAppForGuardrail.Location,
			App:         cesAppForGuardrail.AppId,
			DisplayName: pulumi.String("my-guardrail"),
			Description: pulumi.String("Guardrail description"),
			Action: &ces.GuardrailActionArgs{
				GenerativeAnswer: &ces.GuardrailActionGenerativeAnswerArgs{
					Prompt: pulumi.String("example_prompt"),
				},
			},
			Enabled: pulumi.Bool(true),
			LlmPromptSecurity: &ces.GuardrailLlmPromptSecurityArgs{
				CustomPolicy: &ces.GuardrailLlmPromptSecurityCustomPolicyArgs{
					MaxConversationMessages: pulumi.Int(10),
					ModelSettings: &ces.GuardrailLlmPromptSecurityCustomPolicyModelSettingsArgs{
						Model:       pulumi.String("gemini-3.0-flash-001"),
						Temperature: pulumi.Float64(50),
					},
					Prompt:              pulumi.String("example_prompt"),
					PolicyScope:         pulumi.String("USER_QUERY"),
					FailOpen:            pulumi.Bool(true),
					AllowShortUtterance: pulumi.Bool(true),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_ces_app" "ces_app_for_guardrail" {
  app_id       = "app-id"
  location     = "us"
  description  = "App used as parent for CES Toolset example"
  display_name = "my-app"
  language_settings = {
    default_language_code       = "en-US"
    supported_language_codes    = ["es-ES", "fr-FR"]
    enable_multilingual_support = true
    fallback_action             = "escalate"
  }
  time_zone_settings = {
    time_zone = "America/Los_Angeles"
  }
}
resource "gcp_ces_guardrail" "ces_guardrail_generative_answer_llm_prompt_security" {
  guardrail_id = "guardrail-id"
  location     = gcp_ces_app.ces_app_for_guardrail.location
  app          = gcp_ces_app.ces_app_for_guardrail.app_id
  display_name = "my-guardrail"
  description  = "Guardrail description"
  action = {
    generative_answer = {
      prompt = "example_prompt"
    }
  }
  enabled = true
  llm_prompt_security = {
    custom_policy = {
      max_conversation_messages = 10
      model_settings = {
        model       = "gemini-3.0-flash-001"
        temperature = 50
      }
      prompt                = "example_prompt"
      policy_scope          = "USER_QUERY"
      fail_open             = true
      allow_short_utterance = true
    }
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.ces.App;
import com.pulumi.gcp.ces.AppArgs;
import com.pulumi.gcp.ces.inputs.AppLanguageSettingsArgs;
import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
import com.pulumi.gcp.ces.Guardrail;
import com.pulumi.gcp.ces.GuardrailArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionGenerativeAnswerArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPromptSecurityArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPromptSecurityCustomPolicyArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPromptSecurityCustomPolicyModelSettingsArgs;
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 cesAppForGuardrail = new App("cesAppForGuardrail", AppArgs.builder()
            .appId("app-id")
            .location("us")
            .description("App used as parent for CES Toolset example")
            .displayName("my-app")
            .languageSettings(AppLanguageSettingsArgs.builder()
                .defaultLanguageCode("en-US")
                .supportedLanguageCodes(
                    "es-ES",
                    "fr-FR")
                .enableMultilingualSupport(true)
                .fallbackAction("escalate")
                .build())
            .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                .timeZone("America/Los_Angeles")
                .build())
            .build());

        var cesGuardrailGenerativeAnswerLlmPromptSecurity = new Guardrail("cesGuardrailGenerativeAnswerLlmPromptSecurity", GuardrailArgs.builder()
            .guardrailId("guardrail-id")
            .location(cesAppForGuardrail.location())
            .app(cesAppForGuardrail.appId())
            .displayName("my-guardrail")
            .description("Guardrail description")
            .action(GuardrailActionArgs.builder()
                .generativeAnswer(GuardrailActionGenerativeAnswerArgs.builder()
                    .prompt("example_prompt")
                    .build())
                .build())
            .enabled(true)
            .llmPromptSecurity(GuardrailLlmPromptSecurityArgs.builder()
                .customPolicy(GuardrailLlmPromptSecurityCustomPolicyArgs.builder()
                    .maxConversationMessages(10)
                    .modelSettings(GuardrailLlmPromptSecurityCustomPolicyModelSettingsArgs.builder()
                        .model("gemini-3.0-flash-001")
                        .temperature(50.0)
                        .build())
                    .prompt("example_prompt")
                    .policyScope("USER_QUERY")
                    .failOpen(true)
                    .allowShortUtterance(true)
                    .build())
                .build())
            .build());

    }
}
resources:
  cesAppForGuardrail:
    type: gcp:ces:App
    name: ces_app_for_guardrail
    properties:
      appId: app-id
      location: us
      description: App used as parent for CES Toolset example
      displayName: my-app
      languageSettings:
        defaultLanguageCode: en-US
        supportedLanguageCodes:
          - es-ES
          - fr-FR
        enableMultilingualSupport: true
        fallbackAction: escalate
      timeZoneSettings:
        timeZone: America/Los_Angeles
  cesGuardrailGenerativeAnswerLlmPromptSecurity:
    type: gcp:ces:Guardrail
    name: ces_guardrail_generative_answer_llm_prompt_security
    properties:
      guardrailId: guardrail-id
      location: ${cesAppForGuardrail.location}
      app: ${cesAppForGuardrail.appId}
      displayName: my-guardrail
      description: Guardrail description
      action:
        generativeAnswer:
          prompt: example_prompt
      enabled: true
      llmPromptSecurity:
        customPolicy:
          maxConversationMessages: 10
          modelSettings:
            model: gemini-3.0-flash-001
            temperature: 50
          prompt: example_prompt
          policyScope: USER_QUERY
          failOpen: true
          allowShortUtterance: true

Ces Guardrail Llm Prompt Security Fail Open

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const cesAppForGuardrail = new gcp.ces.App("ces_app_for_guardrail", {
    appId: "app-id",
    location: "us",
    description: "App used as parent for CES Toolset example",
    displayName: "my-app",
    languageSettings: {
        defaultLanguageCode: "en-US",
        supportedLanguageCodes: [
            "es-ES",
            "fr-FR",
        ],
        enableMultilingualSupport: true,
        fallbackAction: "escalate",
    },
    timeZoneSettings: {
        timeZone: "America/Los_Angeles",
    },
});
const cesGuardrailLlmPromptSecurityFailOpen = new gcp.ces.Guardrail("ces_guardrail_llm_prompt_security_fail_open", {
    guardrailId: "guardrail-id",
    location: cesAppForGuardrail.location,
    app: cesAppForGuardrail.appId,
    displayName: "my-guardrail",
    description: "Guardrail description",
    action: {
        generativeAnswer: {
            prompt: "example_prompt",
        },
    },
    enabled: true,
    llmPromptSecurity: {
        failOpen: true,
    },
});
import pulumi
import pulumi_gcp as gcp

ces_app_for_guardrail = gcp.ces.App("ces_app_for_guardrail",
    app_id="app-id",
    location="us",
    description="App used as parent for CES Toolset example",
    display_name="my-app",
    language_settings={
        "default_language_code": "en-US",
        "supported_language_codes": [
            "es-ES",
            "fr-FR",
        ],
        "enable_multilingual_support": True,
        "fallback_action": "escalate",
    },
    time_zone_settings={
        "time_zone": "America/Los_Angeles",
    })
ces_guardrail_llm_prompt_security_fail_open = gcp.ces.Guardrail("ces_guardrail_llm_prompt_security_fail_open",
    guardrail_id="guardrail-id",
    location=ces_app_for_guardrail.location,
    app=ces_app_for_guardrail.app_id,
    display_name="my-guardrail",
    description="Guardrail description",
    action={
        "generative_answer": {
            "prompt": "example_prompt",
        },
    },
    enabled=True,
    llm_prompt_security={
        "fail_open": True,
    })
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var cesAppForGuardrail = new Gcp.Ces.App("ces_app_for_guardrail", new()
    {
        AppId = "app-id",
        Location = "us",
        Description = "App used as parent for CES Toolset example",
        DisplayName = "my-app",
        LanguageSettings = new Gcp.Ces.Inputs.AppLanguageSettingsArgs
        {
            DefaultLanguageCode = "en-US",
            SupportedLanguageCodes = new[]
            {
                "es-ES",
                "fr-FR",
            },
            EnableMultilingualSupport = true,
            FallbackAction = "escalate",
        },
        TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
        {
            TimeZone = "America/Los_Angeles",
        },
    });

    var cesGuardrailLlmPromptSecurityFailOpen = new Gcp.Ces.Guardrail("ces_guardrail_llm_prompt_security_fail_open", new()
    {
        GuardrailId = "guardrail-id",
        Location = cesAppForGuardrail.Location,
        App = cesAppForGuardrail.AppId,
        DisplayName = "my-guardrail",
        Description = "Guardrail description",
        Action = new Gcp.Ces.Inputs.GuardrailActionArgs
        {
            GenerativeAnswer = new Gcp.Ces.Inputs.GuardrailActionGenerativeAnswerArgs
            {
                Prompt = "example_prompt",
            },
        },
        Enabled = true,
        LlmPromptSecurity = new Gcp.Ces.Inputs.GuardrailLlmPromptSecurityArgs
        {
            FailOpen = true,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cesAppForGuardrail, err := ces.NewApp(ctx, "ces_app_for_guardrail", &ces.AppArgs{
			AppId:       pulumi.String("app-id"),
			Location:    pulumi.String("us"),
			Description: pulumi.String("App used as parent for CES Toolset example"),
			DisplayName: pulumi.String("my-app"),
			LanguageSettings: &ces.AppLanguageSettingsArgs{
				DefaultLanguageCode: pulumi.String("en-US"),
				SupportedLanguageCodes: pulumi.StringArray{
					pulumi.String("es-ES"),
					pulumi.String("fr-FR"),
				},
				EnableMultilingualSupport: pulumi.Bool(true),
				FallbackAction:            pulumi.String("escalate"),
			},
			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
				TimeZone: pulumi.String("America/Los_Angeles"),
			},
		})
		if err != nil {
			return err
		}
		_, err = ces.NewGuardrail(ctx, "ces_guardrail_llm_prompt_security_fail_open", &ces.GuardrailArgs{
			GuardrailId: pulumi.String("guardrail-id"),
			Location:    cesAppForGuardrail.Location,
			App:         cesAppForGuardrail.AppId,
			DisplayName: pulumi.String("my-guardrail"),
			Description: pulumi.String("Guardrail description"),
			Action: &ces.GuardrailActionArgs{
				GenerativeAnswer: &ces.GuardrailActionGenerativeAnswerArgs{
					Prompt: pulumi.String("example_prompt"),
				},
			},
			Enabled: pulumi.Bool(true),
			LlmPromptSecurity: &ces.GuardrailLlmPromptSecurityArgs{
				FailOpen: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_ces_app" "ces_app_for_guardrail" {
  app_id       = "app-id"
  location     = "us"
  description  = "App used as parent for CES Toolset example"
  display_name = "my-app"
  language_settings = {
    default_language_code       = "en-US"
    supported_language_codes    = ["es-ES", "fr-FR"]
    enable_multilingual_support = true
    fallback_action             = "escalate"
  }
  time_zone_settings = {
    time_zone = "America/Los_Angeles"
  }
}
resource "gcp_ces_guardrail" "ces_guardrail_llm_prompt_security_fail_open" {
  guardrail_id = "guardrail-id"
  location     = gcp_ces_app.ces_app_for_guardrail.location
  app          = gcp_ces_app.ces_app_for_guardrail.app_id
  display_name = "my-guardrail"
  description  = "Guardrail description"
  action = {
    generative_answer = {
      prompt = "example_prompt"
    }
  }
  enabled = true
  llm_prompt_security = {
    fail_open = true
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.ces.App;
import com.pulumi.gcp.ces.AppArgs;
import com.pulumi.gcp.ces.inputs.AppLanguageSettingsArgs;
import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
import com.pulumi.gcp.ces.Guardrail;
import com.pulumi.gcp.ces.GuardrailArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionGenerativeAnswerArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPromptSecurityArgs;
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 cesAppForGuardrail = new App("cesAppForGuardrail", AppArgs.builder()
            .appId("app-id")
            .location("us")
            .description("App used as parent for CES Toolset example")
            .displayName("my-app")
            .languageSettings(AppLanguageSettingsArgs.builder()
                .defaultLanguageCode("en-US")
                .supportedLanguageCodes(
                    "es-ES",
                    "fr-FR")
                .enableMultilingualSupport(true)
                .fallbackAction("escalate")
                .build())
            .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                .timeZone("America/Los_Angeles")
                .build())
            .build());

        var cesGuardrailLlmPromptSecurityFailOpen = new Guardrail("cesGuardrailLlmPromptSecurityFailOpen", GuardrailArgs.builder()
            .guardrailId("guardrail-id")
            .location(cesAppForGuardrail.location())
            .app(cesAppForGuardrail.appId())
            .displayName("my-guardrail")
            .description("Guardrail description")
            .action(GuardrailActionArgs.builder()
                .generativeAnswer(GuardrailActionGenerativeAnswerArgs.builder()
                    .prompt("example_prompt")
                    .build())
                .build())
            .enabled(true)
            .llmPromptSecurity(GuardrailLlmPromptSecurityArgs.builder()
                .failOpen(true)
                .build())
            .build());

    }
}
resources:
  cesAppForGuardrail:
    type: gcp:ces:App
    name: ces_app_for_guardrail
    properties:
      appId: app-id
      location: us
      description: App used as parent for CES Toolset example
      displayName: my-app
      languageSettings:
        defaultLanguageCode: en-US
        supportedLanguageCodes:
          - es-ES
          - fr-FR
        enableMultilingualSupport: true
        fallbackAction: escalate
      timeZoneSettings:
        timeZone: America/Los_Angeles
  cesGuardrailLlmPromptSecurityFailOpen:
    type: gcp:ces:Guardrail
    name: ces_guardrail_llm_prompt_security_fail_open
    properties:
      guardrailId: guardrail-id
      location: ${cesAppForGuardrail.location}
      app: ${cesAppForGuardrail.appId}
      displayName: my-guardrail
      description: Guardrail description
      action:
        generativeAnswer:
          prompt: example_prompt
      enabled: true
      llmPromptSecurity:
        failOpen: true

Ces Guardrail Llm Prompt Security Default Settings

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const cesAppForGuardrail = new gcp.ces.App("ces_app_for_guardrail", {
    appId: "app-id",
    location: "us",
    description: "App used as parent for CES Toolset example",
    displayName: "my-app",
    languageSettings: {
        defaultLanguageCode: "en-US",
        supportedLanguageCodes: [
            "es-ES",
            "fr-FR",
        ],
        enableMultilingualSupport: true,
        fallbackAction: "escalate",
    },
    timeZoneSettings: {
        timeZone: "America/Los_Angeles",
    },
});
const cesGuardrailLlmPromptSecurityDefaultSettings = new gcp.ces.Guardrail("ces_guardrail_llm_prompt_security_default_settings", {
    guardrailId: "guardrail-id",
    location: cesAppForGuardrail.location,
    app: cesAppForGuardrail.appId,
    displayName: "my-guardrail",
    description: "Guardrail description",
    action: {
        generativeAnswer: {
            prompt: "example_prompt",
        },
    },
    enabled: true,
    llmPromptSecurity: {
        defaultSettings: {},
    },
});
import pulumi
import pulumi_gcp as gcp

ces_app_for_guardrail = gcp.ces.App("ces_app_for_guardrail",
    app_id="app-id",
    location="us",
    description="App used as parent for CES Toolset example",
    display_name="my-app",
    language_settings={
        "default_language_code": "en-US",
        "supported_language_codes": [
            "es-ES",
            "fr-FR",
        ],
        "enable_multilingual_support": True,
        "fallback_action": "escalate",
    },
    time_zone_settings={
        "time_zone": "America/Los_Angeles",
    })
ces_guardrail_llm_prompt_security_default_settings = gcp.ces.Guardrail("ces_guardrail_llm_prompt_security_default_settings",
    guardrail_id="guardrail-id",
    location=ces_app_for_guardrail.location,
    app=ces_app_for_guardrail.app_id,
    display_name="my-guardrail",
    description="Guardrail description",
    action={
        "generative_answer": {
            "prompt": "example_prompt",
        },
    },
    enabled=True,
    llm_prompt_security={
        "default_settings": {},
    })
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var cesAppForGuardrail = new Gcp.Ces.App("ces_app_for_guardrail", new()
    {
        AppId = "app-id",
        Location = "us",
        Description = "App used as parent for CES Toolset example",
        DisplayName = "my-app",
        LanguageSettings = new Gcp.Ces.Inputs.AppLanguageSettingsArgs
        {
            DefaultLanguageCode = "en-US",
            SupportedLanguageCodes = new[]
            {
                "es-ES",
                "fr-FR",
            },
            EnableMultilingualSupport = true,
            FallbackAction = "escalate",
        },
        TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
        {
            TimeZone = "America/Los_Angeles",
        },
    });

    var cesGuardrailLlmPromptSecurityDefaultSettings = new Gcp.Ces.Guardrail("ces_guardrail_llm_prompt_security_default_settings", new()
    {
        GuardrailId = "guardrail-id",
        Location = cesAppForGuardrail.Location,
        App = cesAppForGuardrail.AppId,
        DisplayName = "my-guardrail",
        Description = "Guardrail description",
        Action = new Gcp.Ces.Inputs.GuardrailActionArgs
        {
            GenerativeAnswer = new Gcp.Ces.Inputs.GuardrailActionGenerativeAnswerArgs
            {
                Prompt = "example_prompt",
            },
        },
        Enabled = true,
        LlmPromptSecurity = new Gcp.Ces.Inputs.GuardrailLlmPromptSecurityArgs
        {
            DefaultSettings = null,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cesAppForGuardrail, err := ces.NewApp(ctx, "ces_app_for_guardrail", &ces.AppArgs{
			AppId:       pulumi.String("app-id"),
			Location:    pulumi.String("us"),
			Description: pulumi.String("App used as parent for CES Toolset example"),
			DisplayName: pulumi.String("my-app"),
			LanguageSettings: &ces.AppLanguageSettingsArgs{
				DefaultLanguageCode: pulumi.String("en-US"),
				SupportedLanguageCodes: pulumi.StringArray{
					pulumi.String("es-ES"),
					pulumi.String("fr-FR"),
				},
				EnableMultilingualSupport: pulumi.Bool(true),
				FallbackAction:            pulumi.String("escalate"),
			},
			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
				TimeZone: pulumi.String("America/Los_Angeles"),
			},
		})
		if err != nil {
			return err
		}
		_, err = ces.NewGuardrail(ctx, "ces_guardrail_llm_prompt_security_default_settings", &ces.GuardrailArgs{
			GuardrailId: pulumi.String("guardrail-id"),
			Location:    cesAppForGuardrail.Location,
			App:         cesAppForGuardrail.AppId,
			DisplayName: pulumi.String("my-guardrail"),
			Description: pulumi.String("Guardrail description"),
			Action: &ces.GuardrailActionArgs{
				GenerativeAnswer: &ces.GuardrailActionGenerativeAnswerArgs{
					Prompt: pulumi.String("example_prompt"),
				},
			},
			Enabled: pulumi.Bool(true),
			LlmPromptSecurity: &ces.GuardrailLlmPromptSecurityArgs{
				DefaultSettings: &ces.GuardrailLlmPromptSecurityDefaultSettingsArgs{},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_ces_app" "ces_app_for_guardrail" {
  app_id       = "app-id"
  location     = "us"
  description  = "App used as parent for CES Toolset example"
  display_name = "my-app"
  language_settings = {
    default_language_code       = "en-US"
    supported_language_codes    = ["es-ES", "fr-FR"]
    enable_multilingual_support = true
    fallback_action             = "escalate"
  }
  time_zone_settings = {
    time_zone = "America/Los_Angeles"
  }
}
resource "gcp_ces_guardrail" "ces_guardrail_llm_prompt_security_default_settings" {
  guardrail_id = "guardrail-id"
  location     = gcp_ces_app.ces_app_for_guardrail.location
  app          = gcp_ces_app.ces_app_for_guardrail.app_id
  display_name = "my-guardrail"
  description  = "Guardrail description"
  action = {
    generative_answer = {
      prompt = "example_prompt"
    }
  }
  enabled = true
  llm_prompt_security = {
    default_settings = {}
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.ces.App;
import com.pulumi.gcp.ces.AppArgs;
import com.pulumi.gcp.ces.inputs.AppLanguageSettingsArgs;
import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
import com.pulumi.gcp.ces.Guardrail;
import com.pulumi.gcp.ces.GuardrailArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionGenerativeAnswerArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPromptSecurityArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPromptSecurityDefaultSettingsArgs;
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 cesAppForGuardrail = new App("cesAppForGuardrail", AppArgs.builder()
            .appId("app-id")
            .location("us")
            .description("App used as parent for CES Toolset example")
            .displayName("my-app")
            .languageSettings(AppLanguageSettingsArgs.builder()
                .defaultLanguageCode("en-US")
                .supportedLanguageCodes(
                    "es-ES",
                    "fr-FR")
                .enableMultilingualSupport(true)
                .fallbackAction("escalate")
                .build())
            .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                .timeZone("America/Los_Angeles")
                .build())
            .build());

        var cesGuardrailLlmPromptSecurityDefaultSettings = new Guardrail("cesGuardrailLlmPromptSecurityDefaultSettings", GuardrailArgs.builder()
            .guardrailId("guardrail-id")
            .location(cesAppForGuardrail.location())
            .app(cesAppForGuardrail.appId())
            .displayName("my-guardrail")
            .description("Guardrail description")
            .action(GuardrailActionArgs.builder()
                .generativeAnswer(GuardrailActionGenerativeAnswerArgs.builder()
                    .prompt("example_prompt")
                    .build())
                .build())
            .enabled(true)
            .llmPromptSecurity(GuardrailLlmPromptSecurityArgs.builder()
                .defaultSettings(GuardrailLlmPromptSecurityDefaultSettingsArgs.builder()
                    .build())
                .build())
            .build());

    }
}
resources:
  cesAppForGuardrail:
    type: gcp:ces:App
    name: ces_app_for_guardrail
    properties:
      appId: app-id
      location: us
      description: App used as parent for CES Toolset example
      displayName: my-app
      languageSettings:
        defaultLanguageCode: en-US
        supportedLanguageCodes:
          - es-ES
          - fr-FR
        enableMultilingualSupport: true
        fallbackAction: escalate
      timeZoneSettings:
        timeZone: America/Los_Angeles
  cesGuardrailLlmPromptSecurityDefaultSettings:
    type: gcp:ces:Guardrail
    name: ces_guardrail_llm_prompt_security_default_settings
    properties:
      guardrailId: guardrail-id
      location: ${cesAppForGuardrail.location}
      app: ${cesAppForGuardrail.appId}
      displayName: my-guardrail
      description: Guardrail description
      action:
        generativeAnswer:
          prompt: example_prompt
      enabled: true
      llmPromptSecurity:
        defaultSettings: {}

Ces Guardrail Code Callback

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const cesAppForGuardrail = new gcp.ces.App("ces_app_for_guardrail", {
    appId: "app-id",
    location: "us",
    description: "App used as parent for CES Toolset example",
    displayName: "my-app",
    languageSettings: {
        defaultLanguageCode: "en-US",
        supportedLanguageCodes: [
            "es-ES",
            "fr-FR",
        ],
        enableMultilingualSupport: true,
        fallbackAction: "escalate",
    },
    timeZoneSettings: {
        timeZone: "America/Los_Angeles",
    },
});
const cesGuardrailCodeCallback = new gcp.ces.Guardrail("ces_guardrail_code_callback", {
    guardrailId: "guardrail-id",
    location: cesAppForGuardrail.location,
    app: cesAppForGuardrail.appId,
    displayName: "my-guardrail",
    description: "Guardrail description",
    action: {
        generativeAnswer: {
            prompt: "example_prompt",
        },
    },
    enabled: true,
    codeCallback: {
        beforeAgentCallback: {
            description: "Example callback",
            disabled: true,
            pythonCode: `def callback(context):
    return {'override': False}`,
        },
        afterAgentCallback: {
            description: "Example callback",
            disabled: true,
            pythonCode: `def callback(context):
    return {'override': False}`,
        },
        beforeModelCallback: {
            description: "Example callback",
            disabled: true,
            pythonCode: `def callback(context):
    return {'override': False}`,
        },
        afterModelCallback: {
            description: "Example callback",
            disabled: true,
            pythonCode: `def callback(context):
    return {'override': False}`,
        },
    },
});
import pulumi
import pulumi_gcp as gcp

ces_app_for_guardrail = gcp.ces.App("ces_app_for_guardrail",
    app_id="app-id",
    location="us",
    description="App used as parent for CES Toolset example",
    display_name="my-app",
    language_settings={
        "default_language_code": "en-US",
        "supported_language_codes": [
            "es-ES",
            "fr-FR",
        ],
        "enable_multilingual_support": True,
        "fallback_action": "escalate",
    },
    time_zone_settings={
        "time_zone": "America/Los_Angeles",
    })
ces_guardrail_code_callback = gcp.ces.Guardrail("ces_guardrail_code_callback",
    guardrail_id="guardrail-id",
    location=ces_app_for_guardrail.location,
    app=ces_app_for_guardrail.app_id,
    display_name="my-guardrail",
    description="Guardrail description",
    action={
        "generative_answer": {
            "prompt": "example_prompt",
        },
    },
    enabled=True,
    code_callback={
        "before_agent_callback": {
            "description": "Example callback",
            "disabled": True,
            "python_code": """def callback(context):
    return {'override': False}""",
        },
        "after_agent_callback": {
            "description": "Example callback",
            "disabled": True,
            "python_code": """def callback(context):
    return {'override': False}""",
        },
        "before_model_callback": {
            "description": "Example callback",
            "disabled": True,
            "python_code": """def callback(context):
    return {'override': False}""",
        },
        "after_model_callback": {
            "description": "Example callback",
            "disabled": True,
            "python_code": """def callback(context):
    return {'override': False}""",
        },
    })
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var cesAppForGuardrail = new Gcp.Ces.App("ces_app_for_guardrail", new()
    {
        AppId = "app-id",
        Location = "us",
        Description = "App used as parent for CES Toolset example",
        DisplayName = "my-app",
        LanguageSettings = new Gcp.Ces.Inputs.AppLanguageSettingsArgs
        {
            DefaultLanguageCode = "en-US",
            SupportedLanguageCodes = new[]
            {
                "es-ES",
                "fr-FR",
            },
            EnableMultilingualSupport = true,
            FallbackAction = "escalate",
        },
        TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
        {
            TimeZone = "America/Los_Angeles",
        },
    });

    var cesGuardrailCodeCallback = new Gcp.Ces.Guardrail("ces_guardrail_code_callback", new()
    {
        GuardrailId = "guardrail-id",
        Location = cesAppForGuardrail.Location,
        App = cesAppForGuardrail.AppId,
        DisplayName = "my-guardrail",
        Description = "Guardrail description",
        Action = new Gcp.Ces.Inputs.GuardrailActionArgs
        {
            GenerativeAnswer = new Gcp.Ces.Inputs.GuardrailActionGenerativeAnswerArgs
            {
                Prompt = "example_prompt",
            },
        },
        Enabled = true,
        CodeCallback = new Gcp.Ces.Inputs.GuardrailCodeCallbackArgs
        {
            BeforeAgentCallback = new Gcp.Ces.Inputs.GuardrailCodeCallbackBeforeAgentCallbackArgs
            {
                Description = "Example callback",
                Disabled = true,
                PythonCode = @"def callback(context):
    return {'override': False}",
            },
            AfterAgentCallback = new Gcp.Ces.Inputs.GuardrailCodeCallbackAfterAgentCallbackArgs
            {
                Description = "Example callback",
                Disabled = true,
                PythonCode = @"def callback(context):
    return {'override': False}",
            },
            BeforeModelCallback = new Gcp.Ces.Inputs.GuardrailCodeCallbackBeforeModelCallbackArgs
            {
                Description = "Example callback",
                Disabled = true,
                PythonCode = @"def callback(context):
    return {'override': False}",
            },
            AfterModelCallback = new Gcp.Ces.Inputs.GuardrailCodeCallbackAfterModelCallbackArgs
            {
                Description = "Example callback",
                Disabled = true,
                PythonCode = @"def callback(context):
    return {'override': False}",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cesAppForGuardrail, err := ces.NewApp(ctx, "ces_app_for_guardrail", &ces.AppArgs{
			AppId:       pulumi.String("app-id"),
			Location:    pulumi.String("us"),
			Description: pulumi.String("App used as parent for CES Toolset example"),
			DisplayName: pulumi.String("my-app"),
			LanguageSettings: &ces.AppLanguageSettingsArgs{
				DefaultLanguageCode: pulumi.String("en-US"),
				SupportedLanguageCodes: pulumi.StringArray{
					pulumi.String("es-ES"),
					pulumi.String("fr-FR"),
				},
				EnableMultilingualSupport: pulumi.Bool(true),
				FallbackAction:            pulumi.String("escalate"),
			},
			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
				TimeZone: pulumi.String("America/Los_Angeles"),
			},
		})
		if err != nil {
			return err
		}
		_, err = ces.NewGuardrail(ctx, "ces_guardrail_code_callback", &ces.GuardrailArgs{
			GuardrailId: pulumi.String("guardrail-id"),
			Location:    cesAppForGuardrail.Location,
			App:         cesAppForGuardrail.AppId,
			DisplayName: pulumi.String("my-guardrail"),
			Description: pulumi.String("Guardrail description"),
			Action: &ces.GuardrailActionArgs{
				GenerativeAnswer: &ces.GuardrailActionGenerativeAnswerArgs{
					Prompt: pulumi.String("example_prompt"),
				},
			},
			Enabled: pulumi.Bool(true),
			CodeCallback: &ces.GuardrailCodeCallbackArgs{
				BeforeAgentCallback: &ces.GuardrailCodeCallbackBeforeAgentCallbackArgs{
					Description: pulumi.String("Example callback"),
					Disabled:    pulumi.Bool(true),
					PythonCode:  pulumi.String("def callback(context):\n    return {'override': False}"),
				},
				AfterAgentCallback: &ces.GuardrailCodeCallbackAfterAgentCallbackArgs{
					Description: pulumi.String("Example callback"),
					Disabled:    pulumi.Bool(true),
					PythonCode:  pulumi.String("def callback(context):\n    return {'override': False}"),
				},
				BeforeModelCallback: &ces.GuardrailCodeCallbackBeforeModelCallbackArgs{
					Description: pulumi.String("Example callback"),
					Disabled:    pulumi.Bool(true),
					PythonCode:  pulumi.String("def callback(context):\n    return {'override': False}"),
				},
				AfterModelCallback: &ces.GuardrailCodeCallbackAfterModelCallbackArgs{
					Description: pulumi.String("Example callback"),
					Disabled:    pulumi.Bool(true),
					PythonCode:  pulumi.String("def callback(context):\n    return {'override': False}"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_ces_app" "ces_app_for_guardrail" {
  app_id       = "app-id"
  location     = "us"
  description  = "App used as parent for CES Toolset example"
  display_name = "my-app"
  language_settings = {
    default_language_code       = "en-US"
    supported_language_codes    = ["es-ES", "fr-FR"]
    enable_multilingual_support = true
    fallback_action             = "escalate"
  }
  time_zone_settings = {
    time_zone = "America/Los_Angeles"
  }
}
resource "gcp_ces_guardrail" "ces_guardrail_code_callback" {
  guardrail_id = "guardrail-id"
  location     = gcp_ces_app.ces_app_for_guardrail.location
  app          = gcp_ces_app.ces_app_for_guardrail.app_id
  display_name = "my-guardrail"
  description  = "Guardrail description"
  action = {
    generative_answer = {
      prompt = "example_prompt"
    }
  }
  enabled = true
  code_callback = {
    before_agent_callback = {
      description = "Example callback"
      disabled    = true
      python_code = "def callback(context):\n    return {'override': False}"
    }
    after_agent_callback = {
      description = "Example callback"
      disabled    = true
      python_code = "def callback(context):\n    return {'override': False}"
    }
    before_model_callback = {
      description = "Example callback"
      disabled    = true
      python_code = "def callback(context):\n    return {'override': False}"
    }
    after_model_callback = {
      description = "Example callback"
      disabled    = true
      python_code = "def callback(context):\n    return {'override': False}"
    }
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.ces.App;
import com.pulumi.gcp.ces.AppArgs;
import com.pulumi.gcp.ces.inputs.AppLanguageSettingsArgs;
import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
import com.pulumi.gcp.ces.Guardrail;
import com.pulumi.gcp.ces.GuardrailArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionGenerativeAnswerArgs;
import com.pulumi.gcp.ces.inputs.GuardrailCodeCallbackArgs;
import com.pulumi.gcp.ces.inputs.GuardrailCodeCallbackBeforeAgentCallbackArgs;
import com.pulumi.gcp.ces.inputs.GuardrailCodeCallbackAfterAgentCallbackArgs;
import com.pulumi.gcp.ces.inputs.GuardrailCodeCallbackBeforeModelCallbackArgs;
import com.pulumi.gcp.ces.inputs.GuardrailCodeCallbackAfterModelCallbackArgs;
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 cesAppForGuardrail = new App("cesAppForGuardrail", AppArgs.builder()
            .appId("app-id")
            .location("us")
            .description("App used as parent for CES Toolset example")
            .displayName("my-app")
            .languageSettings(AppLanguageSettingsArgs.builder()
                .defaultLanguageCode("en-US")
                .supportedLanguageCodes(
                    "es-ES",
                    "fr-FR")
                .enableMultilingualSupport(true)
                .fallbackAction("escalate")
                .build())
            .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                .timeZone("America/Los_Angeles")
                .build())
            .build());

        var cesGuardrailCodeCallback = new Guardrail("cesGuardrailCodeCallback", GuardrailArgs.builder()
            .guardrailId("guardrail-id")
            .location(cesAppForGuardrail.location())
            .app(cesAppForGuardrail.appId())
            .displayName("my-guardrail")
            .description("Guardrail description")
            .action(GuardrailActionArgs.builder()
                .generativeAnswer(GuardrailActionGenerativeAnswerArgs.builder()
                    .prompt("example_prompt")
                    .build())
                .build())
            .enabled(true)
            .codeCallback(GuardrailCodeCallbackArgs.builder()
                .beforeAgentCallback(GuardrailCodeCallbackBeforeAgentCallbackArgs.builder()
                    .description("Example callback")
                    .disabled(true)
                    .pythonCode("""
def callback(context):
    return {'override': False}                    """)
                    .build())
                .afterAgentCallback(GuardrailCodeCallbackAfterAgentCallbackArgs.builder()
                    .description("Example callback")
                    .disabled(true)
                    .pythonCode("""
def callback(context):
    return {'override': False}                    """)
                    .build())
                .beforeModelCallback(GuardrailCodeCallbackBeforeModelCallbackArgs.builder()
                    .description("Example callback")
                    .disabled(true)
                    .pythonCode("""
def callback(context):
    return {'override': False}                    """)
                    .build())
                .afterModelCallback(GuardrailCodeCallbackAfterModelCallbackArgs.builder()
                    .description("Example callback")
                    .disabled(true)
                    .pythonCode("""
def callback(context):
    return {'override': False}                    """)
                    .build())
                .build())
            .build());

    }
}
resources:
  cesAppForGuardrail:
    type: gcp:ces:App
    name: ces_app_for_guardrail
    properties:
      appId: app-id
      location: us
      description: App used as parent for CES Toolset example
      displayName: my-app
      languageSettings:
        defaultLanguageCode: en-US
        supportedLanguageCodes:
          - es-ES
          - fr-FR
        enableMultilingualSupport: true
        fallbackAction: escalate
      timeZoneSettings:
        timeZone: America/Los_Angeles
  cesGuardrailCodeCallback:
    type: gcp:ces:Guardrail
    name: ces_guardrail_code_callback
    properties:
      guardrailId: guardrail-id
      location: ${cesAppForGuardrail.location}
      app: ${cesAppForGuardrail.appId}
      displayName: my-guardrail
      description: Guardrail description
      action:
        generativeAnswer:
          prompt: example_prompt
      enabled: true
      codeCallback:
        beforeAgentCallback:
          description: Example callback
          disabled: true
          pythonCode: |-
            def callback(context):
                return {'override': False}
        afterAgentCallback:
          description: Example callback
          disabled: true
          pythonCode: |-
            def callback(context):
                return {'override': False}
        beforeModelCallback:
          description: Example callback
          disabled: true
          pythonCode: |-
            def callback(context):
                return {'override': False}
        afterModelCallback:
          description: Example callback
          disabled: true
          pythonCode: |-
            def callback(context):
                return {'override': False}

Ces Guardrail Llm Policy

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const cesAppForGuardrail = new gcp.ces.App("ces_app_for_guardrail", {
    appId: "app-id",
    location: "us",
    description: "App used as parent for CES Toolset example",
    displayName: "my-app",
    languageSettings: {
        defaultLanguageCode: "en-US",
        supportedLanguageCodes: [
            "es-ES",
            "fr-FR",
        ],
        enableMultilingualSupport: true,
        fallbackAction: "escalate",
    },
    timeZoneSettings: {
        timeZone: "America/Los_Angeles",
    },
});
const cesGuardrailLlmPolicy = new gcp.ces.Guardrail("ces_guardrail_llm_policy", {
    guardrailId: "guardrail-id",
    location: cesAppForGuardrail.location,
    app: cesAppForGuardrail.appId,
    displayName: "my-guardrail",
    description: "Guardrail description",
    action: {
        generativeAnswer: {
            prompt: "example_prompt",
        },
    },
    enabled: true,
    llmPolicy: {
        maxConversationMessages: 10,
        modelSettings: {
            model: "gemini-3.0-flash-001",
            temperature: 50,
        },
        prompt: "example_prompt",
        policyScope: "USER_QUERY",
        failOpen: true,
        allowShortUtterance: true,
    },
});
import pulumi
import pulumi_gcp as gcp

ces_app_for_guardrail = gcp.ces.App("ces_app_for_guardrail",
    app_id="app-id",
    location="us",
    description="App used as parent for CES Toolset example",
    display_name="my-app",
    language_settings={
        "default_language_code": "en-US",
        "supported_language_codes": [
            "es-ES",
            "fr-FR",
        ],
        "enable_multilingual_support": True,
        "fallback_action": "escalate",
    },
    time_zone_settings={
        "time_zone": "America/Los_Angeles",
    })
ces_guardrail_llm_policy = gcp.ces.Guardrail("ces_guardrail_llm_policy",
    guardrail_id="guardrail-id",
    location=ces_app_for_guardrail.location,
    app=ces_app_for_guardrail.app_id,
    display_name="my-guardrail",
    description="Guardrail description",
    action={
        "generative_answer": {
            "prompt": "example_prompt",
        },
    },
    enabled=True,
    llm_policy={
        "max_conversation_messages": 10,
        "model_settings": {
            "model": "gemini-3.0-flash-001",
            "temperature": float(50),
        },
        "prompt": "example_prompt",
        "policy_scope": "USER_QUERY",
        "fail_open": True,
        "allow_short_utterance": True,
    })
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var cesAppForGuardrail = new Gcp.Ces.App("ces_app_for_guardrail", new()
    {
        AppId = "app-id",
        Location = "us",
        Description = "App used as parent for CES Toolset example",
        DisplayName = "my-app",
        LanguageSettings = new Gcp.Ces.Inputs.AppLanguageSettingsArgs
        {
            DefaultLanguageCode = "en-US",
            SupportedLanguageCodes = new[]
            {
                "es-ES",
                "fr-FR",
            },
            EnableMultilingualSupport = true,
            FallbackAction = "escalate",
        },
        TimeZoneSettings = new Gcp.Ces.Inputs.AppTimeZoneSettingsArgs
        {
            TimeZone = "America/Los_Angeles",
        },
    });

    var cesGuardrailLlmPolicy = new Gcp.Ces.Guardrail("ces_guardrail_llm_policy", new()
    {
        GuardrailId = "guardrail-id",
        Location = cesAppForGuardrail.Location,
        App = cesAppForGuardrail.AppId,
        DisplayName = "my-guardrail",
        Description = "Guardrail description",
        Action = new Gcp.Ces.Inputs.GuardrailActionArgs
        {
            GenerativeAnswer = new Gcp.Ces.Inputs.GuardrailActionGenerativeAnswerArgs
            {
                Prompt = "example_prompt",
            },
        },
        Enabled = true,
        LlmPolicy = new Gcp.Ces.Inputs.GuardrailLlmPolicyArgs
        {
            MaxConversationMessages = 10,
            ModelSettings = new Gcp.Ces.Inputs.GuardrailLlmPolicyModelSettingsArgs
            {
                Model = "gemini-3.0-flash-001",
                Temperature = 50.0,
            },
            Prompt = "example_prompt",
            PolicyScope = "USER_QUERY",
            FailOpen = true,
            AllowShortUtterance = true,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/ces"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cesAppForGuardrail, err := ces.NewApp(ctx, "ces_app_for_guardrail", &ces.AppArgs{
			AppId:       pulumi.String("app-id"),
			Location:    pulumi.String("us"),
			Description: pulumi.String("App used as parent for CES Toolset example"),
			DisplayName: pulumi.String("my-app"),
			LanguageSettings: &ces.AppLanguageSettingsArgs{
				DefaultLanguageCode: pulumi.String("en-US"),
				SupportedLanguageCodes: pulumi.StringArray{
					pulumi.String("es-ES"),
					pulumi.String("fr-FR"),
				},
				EnableMultilingualSupport: pulumi.Bool(true),
				FallbackAction:            pulumi.String("escalate"),
			},
			TimeZoneSettings: &ces.AppTimeZoneSettingsArgs{
				TimeZone: pulumi.String("America/Los_Angeles"),
			},
		})
		if err != nil {
			return err
		}
		_, err = ces.NewGuardrail(ctx, "ces_guardrail_llm_policy", &ces.GuardrailArgs{
			GuardrailId: pulumi.String("guardrail-id"),
			Location:    cesAppForGuardrail.Location,
			App:         cesAppForGuardrail.AppId,
			DisplayName: pulumi.String("my-guardrail"),
			Description: pulumi.String("Guardrail description"),
			Action: &ces.GuardrailActionArgs{
				GenerativeAnswer: &ces.GuardrailActionGenerativeAnswerArgs{
					Prompt: pulumi.String("example_prompt"),
				},
			},
			Enabled: pulumi.Bool(true),
			LlmPolicy: &ces.GuardrailLlmPolicyArgs{
				MaxConversationMessages: pulumi.Int(10),
				ModelSettings: &ces.GuardrailLlmPolicyModelSettingsArgs{
					Model:       pulumi.String("gemini-3.0-flash-001"),
					Temperature: pulumi.Float64(50),
				},
				Prompt:              pulumi.String("example_prompt"),
				PolicyScope:         pulumi.String("USER_QUERY"),
				FailOpen:            pulumi.Bool(true),
				AllowShortUtterance: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_ces_app" "ces_app_for_guardrail" {
  app_id       = "app-id"
  location     = "us"
  description  = "App used as parent for CES Toolset example"
  display_name = "my-app"
  language_settings = {
    default_language_code       = "en-US"
    supported_language_codes    = ["es-ES", "fr-FR"]
    enable_multilingual_support = true
    fallback_action             = "escalate"
  }
  time_zone_settings = {
    time_zone = "America/Los_Angeles"
  }
}
resource "gcp_ces_guardrail" "ces_guardrail_llm_policy" {
  guardrail_id = "guardrail-id"
  location     = gcp_ces_app.ces_app_for_guardrail.location
  app          = gcp_ces_app.ces_app_for_guardrail.app_id
  display_name = "my-guardrail"
  description  = "Guardrail description"
  action = {
    generative_answer = {
      prompt = "example_prompt"
    }
  }
  enabled = true
  llm_policy = {
    max_conversation_messages = 10
    model_settings = {
      model       = "gemini-3.0-flash-001"
      temperature = 50
    }
    prompt                = "example_prompt"
    policy_scope          = "USER_QUERY"
    fail_open             = true
    allow_short_utterance = true
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.ces.App;
import com.pulumi.gcp.ces.AppArgs;
import com.pulumi.gcp.ces.inputs.AppLanguageSettingsArgs;
import com.pulumi.gcp.ces.inputs.AppTimeZoneSettingsArgs;
import com.pulumi.gcp.ces.Guardrail;
import com.pulumi.gcp.ces.GuardrailArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionArgs;
import com.pulumi.gcp.ces.inputs.GuardrailActionGenerativeAnswerArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPolicyArgs;
import com.pulumi.gcp.ces.inputs.GuardrailLlmPolicyModelSettingsArgs;
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 cesAppForGuardrail = new App("cesAppForGuardrail", AppArgs.builder()
            .appId("app-id")
            .location("us")
            .description("App used as parent for CES Toolset example")
            .displayName("my-app")
            .languageSettings(AppLanguageSettingsArgs.builder()
                .defaultLanguageCode("en-US")
                .supportedLanguageCodes(
                    "es-ES",
                    "fr-FR")
                .enableMultilingualSupport(true)
                .fallbackAction("escalate")
                .build())
            .timeZoneSettings(AppTimeZoneSettingsArgs.builder()
                .timeZone("America/Los_Angeles")
                .build())
            .build());

        var cesGuardrailLlmPolicy = new Guardrail("cesGuardrailLlmPolicy", GuardrailArgs.builder()
            .guardrailId("guardrail-id")
            .location(cesAppForGuardrail.location())
            .app(cesAppForGuardrail.appId())
            .displayName("my-guardrail")
            .description("Guardrail description")
            .action(GuardrailActionArgs.builder()
                .generativeAnswer(GuardrailActionGenerativeAnswerArgs.builder()
                    .prompt("example_prompt")
                    .build())
                .build())
            .enabled(true)
            .llmPolicy(GuardrailLlmPolicyArgs.builder()
                .maxConversationMessages(10)
                .modelSettings(GuardrailLlmPolicyModelSettingsArgs.builder()
                    .model("gemini-3.0-flash-001")
                    .temperature(50.0)
                    .build())
                .prompt("example_prompt")
                .policyScope("USER_QUERY")
                .failOpen(true)
                .allowShortUtterance(true)
                .build())
            .build());

    }
}
resources:
  cesAppForGuardrail:
    type: gcp:ces:App
    name: ces_app_for_guardrail
    properties:
      appId: app-id
      location: us
      description: App used as parent for CES Toolset example
      displayName: my-app
      languageSettings:
        defaultLanguageCode: en-US
        supportedLanguageCodes:
          - es-ES
          - fr-FR
        enableMultilingualSupport: true
        fallbackAction: escalate
      timeZoneSettings:
        timeZone: America/Los_Angeles
  cesGuardrailLlmPolicy:
    type: gcp:ces:Guardrail
    name: ces_guardrail_llm_policy
    properties:
      guardrailId: guardrail-id
      location: ${cesAppForGuardrail.location}
      app: ${cesAppForGuardrail.appId}
      displayName: my-guardrail
      description: Guardrail description
      action:
        generativeAnswer:
          prompt: example_prompt
      enabled: true
      llmPolicy:
        maxConversationMessages: 10
        modelSettings:
          model: gemini-3.0-flash-001
          temperature: 50
        prompt: example_prompt
        policyScope: USER_QUERY
        failOpen: true
        allowShortUtterance: true

Import

Guardrail can be imported using any of these accepted formats:

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

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

$ pulumi import gcp:ces/guardrail:Guardrail default projects/{{project}}/locations/{{location}}/apps/{{app}}/guardrails/{{name}}
$ pulumi import gcp:ces/guardrail:Guardrail default {{project}}/{{location}}/{{app}}/{{name}}
$ pulumi import gcp:ces/guardrail:Guardrail default {{location}}/{{app}}/{{name}}

Constructors

Guardrail(String name, {GuardrailArgs? args, CustomResourceOptions? options})
Creates a new Guardrail. name The Pulumi resource name. args Arguments used to configure this Guardrail. The set of arguments for Guardrail. options Resource options controlling this resource's behavior.
Guardrail.reference(String urn)
Creates a typed reference to an existing Guardrail resource.

Properties

action ↔ Output<GuardrailAction?>
Action that is taken when a certain precondition is met. Structure is documented below.
latefinal
app ↔ Output<String>
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
latefinal
childResources → Set<Resource>
finalinherited
codeCallback ↔ Output<GuardrailCodeCallback?>
Guardrail that blocks the conversation based on the code callbacks provided. Structure is documented below.
latefinal
completionSources ↔ Map<String, IOutputCompletionSource>
latefinalinherited
contentFilter ↔ Output<GuardrailContentFilter?>
Guardrail that bans certain content from being used in the conversation. Structure is documented below.
latefinal
createTime ↔ Output<String>
Timestamp when the guardrail was created.
latefinal
deletionPolicy ↔ Output<String>
Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
latefinal
description ↔ Output<String?>
Description of the guardrail.
latefinal
displayName ↔ Output<String>
Display name of the guardrail.
latefinal
enabled ↔ Output<bool?>
Whether the guardrail is enabled.
latefinal
etag ↔ Output<String>
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.
latefinal
guardrailId ↔ Output<String>
The ID to use for the guardrail, which will become the final component of the guardrail's resource name. If not provided, a unique ID will be automatically assigned for the guardrail.
latefinal
hashCode → int
The hash code for this object.
no setterinherited
id ↔ Output<String>
getter/setter pairinherited
isCustom → bool
Returns whether this resource is provider-managed.
no setterinherited
isProtected → bool
Returns whether this resource is protected from deletion.
no setterinherited
isRemote → bool
Whether this resource is registered as remote.
no setterinherited
isResourceReference → bool
Whether this instance represents a resource value returned over RPC.
finalinherited
llmPolicy ↔ Output<GuardrailLlmPolicy?>
Guardrail that blocks the conversation if the LLM response is considered violating the policy based on the LLM classification. Structure is documented below.
latefinal
llmPromptSecurity ↔ Output<GuardrailLlmPromptSecurity?>
Guardrail that blocks the conversation if the input is considered unsafe based on the LLM classification. Structure is documented below.
latefinal
location ↔ Output<String>
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
latefinal
modelSafety ↔ Output<GuardrailModelSafety?>
Model safety settings overrides. When this is set, it will override the default settings and trigger the guardrail if the response is considered unsafe. Structure is documented below.
latefinal
name ↔ Output<String>
Identifier. The unique identifier of the guardrail. Format: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}
latefinal
project ↔ Output<String>
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
latefinal
resourceTransforms → List<ResourceTransform>
Inherited/explicit async transforms.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
transformations → List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
updateTime ↔ Output<String>
Timestamp when the guardrail was last updated.
latefinal
urn ↔ Output<String>
latefinalinherited

Methods

failId(Object error) → void
Completes this resource ID with an error when registration fails.
inherited
failOutputs(Object error) → void
Completes all output properties with error.
inherited
failUrn(Object error) → void
Completes this resource URN with an error when registration fails.
inherited
getProvider(String moduleMember) → ProviderResource?
Returns provider for moduleMember's package, if configured.
inherited
getResourceName() → String
Returns this resource's logical name.
inherited
getResourceType() → String
Returns this resource's Pulumi type token.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerOutput<T>(String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output<T>
Registers a dynamic output property for this resource.
inherited
resolveId(String? value, {required bool isKnown}) → void
Resolves the provider-assigned ID for this resource.
inherited
resolveOutputs(Struct outputs) → void
Resolves all output properties from a monitor response payload.
inherited
resolveUrn(String value) → void
Resolves this resource's URN once assigned by the engine.
inherited
serializeProperties(Map<String, dynamic> properties) → Future<Struct>
Serializes resource properties for RPC transmission.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

get(String name, Input<String> id, {GuardrailState? state, CustomResourceOptions? options}) → Guardrail
Gets an existing Guardrail resource's state with the given name and id.