Google Cloud Classic v8.8.0 published on Thursday, Nov 7, 2024 by Pulumi
gcp.diagflow.CxPage
Explore with Pulumi AI
A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages.
To get more information about Page, see:
- API documentation
- How-to Guides
Example Usage
Dialogflowcx Page Full
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const agent = new gcp.diagflow.CxAgent("agent", {
displayName: "dialogflowcx-agent",
location: "global",
defaultLanguageCode: "en",
supportedLanguageCodes: [
"fr",
"de",
"es",
],
timeZone: "America/New_York",
description: "Example description.",
avatarUri: "https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png",
enableStackdriverLogging: true,
enableSpellCorrection: true,
speechToTextSettings: {
enableSpeechAdaptation: true,
},
});
const myPage2 = new gcp.diagflow.CxPage("my_page2", {
parent: agent.startFlow,
displayName: "MyPage2",
});
const myWebhook = new gcp.diagflow.CxWebhook("my_webhook", {
parent: agent.id,
displayName: "MyWebhook",
genericWebService: {
uri: "https://example.com",
},
});
const basicPage = new gcp.diagflow.CxPage("basic_page", {
parent: agent.startFlow,
displayName: "MyPage",
entryFulfillment: {
messages: [
{
channel: "some-channel",
text: {
texts: ["Welcome to page"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
eventHandlers: [{
event: "some-event",
triggerFulfillment: {
returnPartialResponses: true,
messages: [
{
channel: "some-channel",
text: {
texts: ["Some text"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
}],
form: {
parameters: [{
displayName: "param1",
entityType: "projects/-/locations/-/agents/-/entityTypes/sys.date",
defaultValue: JSON.stringify("2000-01-01"),
fillBehavior: {
initialPromptFulfillment: {
messages: [
{
channel: "some-channel",
text: {
texts: ["Please provide param1"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
repromptEventHandlers: [
{
event: "sys.no-match-1",
triggerFulfillment: {
returnPartialResponses: true,
webhook: myWebhook.id,
tag: "some-tag",
messages: [
{
channel: "some-channel",
text: {
texts: ["Please provide param1"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
},
{
event: "sys.no-match-2",
targetFlow: agent.startFlow,
},
{
event: "sys.no-match-3",
targetPage: myPage2.id,
},
],
},
required: true,
redact: true,
advancedSettings: {
dtmfSettings: {
enabled: true,
maxDigits: 1,
finishDigit: "#",
},
},
}],
},
transitionRoutes: [{
condition: "$page.params.status = 'FINAL'",
triggerFulfillment: {
messages: [
{
channel: "some-channel",
text: {
texts: ["information completed, navigating to page 2"],
},
},
{
payload: " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
conversationSuccess: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
outputAudioText: {
text: "some output text",
},
},
{
outputAudioText: {
ssml: " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
liveAgentHandoff: {
metadata: " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
playAudio: {
audioUri: "http://example.com/some-audio-file.mp3",
},
},
{
telephonyTransferCall: {
phoneNumber: "1-234-567-8901",
},
},
],
setParameterActions: [
{
parameter: "some-param",
value: "123.45",
},
{
parameter: "another-param",
value: JSON.stringify("abc"),
},
{
parameter: "other-param",
value: JSON.stringify(["foo"]),
},
],
conditionalCases: [{
cases: JSON.stringify([
{
condition: "$sys.func.RAND() < 0.5",
caseContent: [
{
message: {
text: {
text: ["First case"],
},
},
},
{
additionalCases: {
cases: [{
condition: "$sys.func.RAND() < 0.2",
caseContent: [{
message: {
text: {
text: ["Nested case"],
},
},
}],
}],
},
},
],
},
{
caseContent: [{
message: {
text: {
text: ["Final case"],
},
},
}],
},
]),
}],
},
targetPage: myPage2.id,
}],
advancedSettings: {
dtmfSettings: {
enabled: true,
maxDigits: 1,
finishDigit: "#",
},
},
});
import pulumi
import json
import pulumi_gcp as gcp
agent = gcp.diagflow.CxAgent("agent",
display_name="dialogflowcx-agent",
location="global",
default_language_code="en",
supported_language_codes=[
"fr",
"de",
"es",
],
time_zone="America/New_York",
description="Example description.",
avatar_uri="https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png",
enable_stackdriver_logging=True,
enable_spell_correction=True,
speech_to_text_settings={
"enable_speech_adaptation": True,
})
my_page2 = gcp.diagflow.CxPage("my_page2",
parent=agent.start_flow,
display_name="MyPage2")
my_webhook = gcp.diagflow.CxWebhook("my_webhook",
parent=agent.id,
display_name="MyWebhook",
generic_web_service={
"uri": "https://example.com",
})
basic_page = gcp.diagflow.CxPage("basic_page",
parent=agent.start_flow,
display_name="MyPage",
entry_fulfillment={
"messages": [
{
"channel": "some-channel",
"text": {
"texts": ["Welcome to page"],
},
},
{
"payload": " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
"conversation_success": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"output_audio_text": {
"text": "some output text",
},
},
{
"output_audio_text": {
"ssml": " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
"live_agent_handoff": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"play_audio": {
"audio_uri": "http://example.com/some-audio-file.mp3",
},
},
{
"telephony_transfer_call": {
"phone_number": "1-234-567-8901",
},
},
],
"set_parameter_actions": [
{
"parameter": "some-param",
"value": "123.45",
},
{
"parameter": "another-param",
"value": json.dumps("abc"),
},
{
"parameter": "other-param",
"value": json.dumps(["foo"]),
},
],
"conditional_cases": [{
"cases": json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
}],
},
event_handlers=[{
"event": "some-event",
"trigger_fulfillment": {
"return_partial_responses": True,
"messages": [
{
"channel": "some-channel",
"text": {
"texts": ["Some text"],
},
},
{
"payload": " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
"conversation_success": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"output_audio_text": {
"text": "some output text",
},
},
{
"output_audio_text": {
"ssml": " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
"live_agent_handoff": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"play_audio": {
"audio_uri": "http://example.com/some-audio-file.mp3",
},
},
{
"telephony_transfer_call": {
"phone_number": "1-234-567-8901",
},
},
],
"set_parameter_actions": [
{
"parameter": "some-param",
"value": "123.45",
},
{
"parameter": "another-param",
"value": json.dumps("abc"),
},
{
"parameter": "other-param",
"value": json.dumps(["foo"]),
},
],
"conditional_cases": [{
"cases": json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
}],
},
}],
form={
"parameters": [{
"display_name": "param1",
"entity_type": "projects/-/locations/-/agents/-/entityTypes/sys.date",
"default_value": json.dumps("2000-01-01"),
"fill_behavior": {
"initial_prompt_fulfillment": {
"messages": [
{
"channel": "some-channel",
"text": {
"texts": ["Please provide param1"],
},
},
{
"payload": " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
"conversation_success": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"output_audio_text": {
"text": "some output text",
},
},
{
"output_audio_text": {
"ssml": " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
"live_agent_handoff": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"play_audio": {
"audio_uri": "http://example.com/some-audio-file.mp3",
},
},
{
"telephony_transfer_call": {
"phone_number": "1-234-567-8901",
},
},
],
"set_parameter_actions": [
{
"parameter": "some-param",
"value": "123.45",
},
{
"parameter": "another-param",
"value": json.dumps("abc"),
},
{
"parameter": "other-param",
"value": json.dumps(["foo"]),
},
],
"conditional_cases": [{
"cases": json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
}],
},
"reprompt_event_handlers": [
{
"event": "sys.no-match-1",
"trigger_fulfillment": {
"return_partial_responses": True,
"webhook": my_webhook.id,
"tag": "some-tag",
"messages": [
{
"channel": "some-channel",
"text": {
"texts": ["Please provide param1"],
},
},
{
"payload": " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
"conversation_success": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"output_audio_text": {
"text": "some output text",
},
},
{
"output_audio_text": {
"ssml": " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
"live_agent_handoff": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"play_audio": {
"audio_uri": "http://example.com/some-audio-file.mp3",
},
},
{
"telephony_transfer_call": {
"phone_number": "1-234-567-8901",
},
},
],
"set_parameter_actions": [
{
"parameter": "some-param",
"value": "123.45",
},
{
"parameter": "another-param",
"value": json.dumps("abc"),
},
{
"parameter": "other-param",
"value": json.dumps(["foo"]),
},
],
"conditional_cases": [{
"cases": json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
}],
},
},
{
"event": "sys.no-match-2",
"target_flow": agent.start_flow,
},
{
"event": "sys.no-match-3",
"target_page": my_page2.id,
},
],
},
"required": True,
"redact": True,
"advanced_settings": {
"dtmf_settings": {
"enabled": True,
"max_digits": 1,
"finish_digit": "#",
},
},
}],
},
transition_routes=[{
"condition": "$page.params.status = 'FINAL'",
"trigger_fulfillment": {
"messages": [
{
"channel": "some-channel",
"text": {
"texts": ["information completed, navigating to page 2"],
},
},
{
"payload": " {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n",
},
{
"conversation_success": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"output_audio_text": {
"text": "some output text",
},
},
{
"output_audio_text": {
"ssml": " <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n",
},
},
{
"live_agent_handoff": {
"metadata": " {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n",
},
},
{
"play_audio": {
"audio_uri": "http://example.com/some-audio-file.mp3",
},
},
{
"telephony_transfer_call": {
"phone_number": "1-234-567-8901",
},
},
],
"set_parameter_actions": [
{
"parameter": "some-param",
"value": "123.45",
},
{
"parameter": "another-param",
"value": json.dumps("abc"),
},
{
"parameter": "other-param",
"value": json.dumps(["foo"]),
},
],
"conditional_cases": [{
"cases": json.dumps([
{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": [
{
"message": {
"text": {
"text": ["First case"],
},
},
},
{
"additionalCases": {
"cases": [{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": [{
"message": {
"text": {
"text": ["Nested case"],
},
},
}],
}],
},
},
],
},
{
"caseContent": [{
"message": {
"text": {
"text": ["Final case"],
},
},
}],
},
]),
}],
},
"target_page": my_page2.id,
}],
advanced_settings={
"dtmf_settings": {
"enabled": True,
"max_digits": 1,
"finish_digit": "#",
},
})
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/diagflow"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
agent, err := diagflow.NewCxAgent(ctx, "agent", &diagflow.CxAgentArgs{
DisplayName: pulumi.String("dialogflowcx-agent"),
Location: pulumi.String("global"),
DefaultLanguageCode: pulumi.String("en"),
SupportedLanguageCodes: pulumi.StringArray{
pulumi.String("fr"),
pulumi.String("de"),
pulumi.String("es"),
},
TimeZone: pulumi.String("America/New_York"),
Description: pulumi.String("Example description."),
AvatarUri: pulumi.String("https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png"),
EnableStackdriverLogging: pulumi.Bool(true),
EnableSpellCorrection: pulumi.Bool(true),
SpeechToTextSettings: &diagflow.CxAgentSpeechToTextSettingsArgs{
EnableSpeechAdaptation: pulumi.Bool(true),
},
})
if err != nil {
return err
}
myPage2, err := diagflow.NewCxPage(ctx, "my_page2", &diagflow.CxPageArgs{
Parent: agent.StartFlow,
DisplayName: pulumi.String("MyPage2"),
})
if err != nil {
return err
}
myWebhook, err := diagflow.NewCxWebhook(ctx, "my_webhook", &diagflow.CxWebhookArgs{
Parent: agent.ID(),
DisplayName: pulumi.String("MyWebhook"),
GenericWebService: &diagflow.CxWebhookGenericWebServiceArgs{
Uri: pulumi.String("https://example.com"),
},
})
if err != nil {
return err
}
tmpJSON0, err := json.Marshal("abc")
if err != nil {
return err
}
json0 := string(tmpJSON0)
tmpJSON1, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json1 := string(tmpJSON1)
tmpJSON2, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json2 := string(tmpJSON2)
tmpJSON3, err := json.Marshal("abc")
if err != nil {
return err
}
json3 := string(tmpJSON3)
tmpJSON4, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json4 := string(tmpJSON4)
tmpJSON5, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json5 := string(tmpJSON5)
tmpJSON6, err := json.Marshal("2000-01-01")
if err != nil {
return err
}
json6 := string(tmpJSON6)
tmpJSON7, err := json.Marshal("abc")
if err != nil {
return err
}
json7 := string(tmpJSON7)
tmpJSON8, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json8 := string(tmpJSON8)
tmpJSON9, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json9 := string(tmpJSON9)
tmpJSON10, err := json.Marshal("abc")
if err != nil {
return err
}
json10 := string(tmpJSON10)
tmpJSON11, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json11 := string(tmpJSON11)
tmpJSON12, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json12 := string(tmpJSON12)
tmpJSON13, err := json.Marshal("abc")
if err != nil {
return err
}
json13 := string(tmpJSON13)
tmpJSON14, err := json.Marshal([]string{
"foo",
})
if err != nil {
return err
}
json14 := string(tmpJSON14)
tmpJSON15, err := json.Marshal([]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.5",
"caseContent": []interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"First case",
},
},
},
},
map[string]interface{}{
"additionalCases": map[string]interface{}{
"cases": []map[string]interface{}{
map[string]interface{}{
"condition": "$sys.func.RAND() < 0.2",
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
map[string]interface{}{
"caseContent": []map[string]interface{}{
map[string]interface{}{
"message": map[string]interface{}{
"text": map[string]interface{}{
"text": []string{
"Final case",
},
},
},
},
},
},
})
if err != nil {
return err
}
json15 := string(tmpJSON15)
_, err = diagflow.NewCxPage(ctx, "basic_page", &diagflow.CxPageArgs{
Parent: agent.StartFlow,
DisplayName: pulumi.String("MyPage"),
EntryFulfillment: &diagflow.CxPageEntryFulfillmentArgs{
Messages: diagflow.CxPageEntryFulfillmentMessageArray{
&diagflow.CxPageEntryFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageEntryFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Welcome to page"),
},
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageEntryFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEntryFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEntryFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageEntryFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageEntryFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageEntryFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageEntryFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageEntryFulfillmentSetParameterActionArray{
&diagflow.CxPageEntryFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageEntryFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json0),
},
&diagflow.CxPageEntryFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json1),
},
},
ConditionalCases: diagflow.CxPageEntryFulfillmentConditionalCaseArray{
&diagflow.CxPageEntryFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json2),
},
},
},
EventHandlers: diagflow.CxPageEventHandlerArray{
&diagflow.CxPageEventHandlerArgs{
Event: pulumi.String("some-event"),
TriggerFulfillment: &diagflow.CxPageEventHandlerTriggerFulfillmentArgs{
ReturnPartialResponses: pulumi.Bool(true),
Messages: diagflow.CxPageEventHandlerTriggerFulfillmentMessageArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Some text"),
},
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json3),
},
&diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json4),
},
},
ConditionalCases: diagflow.CxPageEventHandlerTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json5),
},
},
},
},
},
Form: &diagflow.CxPageFormArgs{
Parameters: diagflow.CxPageFormParameterArray{
&diagflow.CxPageFormParameterArgs{
DisplayName: pulumi.String("param1"),
EntityType: pulumi.String("projects/-/locations/-/agents/-/entityTypes/sys.date"),
DefaultValue: pulumi.String(json6),
FillBehavior: &diagflow.CxPageFormParameterFillBehaviorArgs{
InitialPromptFulfillment: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs{
Messages: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Please provide param1"),
},
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json7),
},
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json8),
},
},
ConditionalCases: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json9),
},
},
},
RepromptEventHandlers: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs{
Event: pulumi.String("sys.no-match-1"),
TriggerFulfillment: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs{
ReturnPartialResponses: pulumi.Bool(true),
Webhook: myWebhook.ID(),
Tag: pulumi.String("some-tag"),
Messages: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("Please provide param1"),
},
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json10),
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json11),
},
},
ConditionalCases: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json12),
},
},
},
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs{
Event: pulumi.String("sys.no-match-2"),
TargetFlow: agent.StartFlow,
},
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs{
Event: pulumi.String("sys.no-match-3"),
TargetPage: myPage2.ID(),
},
},
},
Required: pulumi.Bool(true),
Redact: pulumi.Bool(true),
AdvancedSettings: &diagflow.CxPageFormParameterAdvancedSettingsArgs{
DtmfSettings: &diagflow.CxPageFormParameterAdvancedSettingsDtmfSettingsArgs{
Enabled: pulumi.Bool(true),
MaxDigits: pulumi.Int(1),
FinishDigit: pulumi.String("#"),
},
},
},
},
},
TransitionRoutes: diagflow.CxPageTransitionRouteArray{
&diagflow.CxPageTransitionRouteArgs{
Condition: pulumi.String("$page.params.status = 'FINAL'"),
TriggerFulfillment: &diagflow.CxPageTransitionRouteTriggerFulfillmentArgs{
Messages: diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
Channel: pulumi.String("some-channel"),
Text: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTextArgs{
Texts: pulumi.StringArray{
pulumi.String("information completed, navigating to page 2"),
},
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
Payload: pulumi.String(" {\"some-key\": \"some-value\", \"other-key\": [\"other-value\"]}\n"),
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
ConversationSuccess: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs{
Text: pulumi.String("some output text"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
OutputAudioText: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs{
Ssml: pulumi.String(" <speak>Some example <say-as interpret-as=\"characters\">SSML XML</say-as></speak>\n"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
LiveAgentHandoff: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String(" {\"some-metadata-key\": \"some-value\", \"other-metadata-key\": 1234}\n"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
PlayAudio: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("http://example.com/some-audio-file.mp3"),
},
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
TelephonyTransferCall: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("1-234-567-8901"),
},
},
},
SetParameterActions: diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("some-param"),
Value: pulumi.String("123.45"),
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("another-param"),
Value: pulumi.String(json13),
},
&diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("other-param"),
Value: pulumi.String(json14),
},
},
ConditionalCases: diagflow.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String(json15),
},
},
},
TargetPage: myPage2.ID(),
},
},
AdvancedSettings: &diagflow.CxPageAdvancedSettingsArgs{
DtmfSettings: &diagflow.CxPageAdvancedSettingsDtmfSettingsArgs{
Enabled: pulumi.Bool(true),
MaxDigits: pulumi.Int(1),
FinishDigit: pulumi.String("#"),
},
},
})
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 agent = new Gcp.Diagflow.CxAgent("agent", new()
{
DisplayName = "dialogflowcx-agent",
Location = "global",
DefaultLanguageCode = "en",
SupportedLanguageCodes = new[]
{
"fr",
"de",
"es",
},
TimeZone = "America/New_York",
Description = "Example description.",
AvatarUri = "https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png",
EnableStackdriverLogging = true,
EnableSpellCorrection = true,
SpeechToTextSettings = new Gcp.Diagflow.Inputs.CxAgentSpeechToTextSettingsArgs
{
EnableSpeechAdaptation = true,
},
});
var myPage2 = new Gcp.Diagflow.CxPage("my_page2", new()
{
Parent = agent.StartFlow,
DisplayName = "MyPage2",
});
var myWebhook = new Gcp.Diagflow.CxWebhook("my_webhook", new()
{
Parent = agent.Id,
DisplayName = "MyWebhook",
GenericWebService = new Gcp.Diagflow.Inputs.CxWebhookGenericWebServiceArgs
{
Uri = "https://example.com",
},
});
var basicPage = new Gcp.Diagflow.CxPage("basic_page", new()
{
Parent = agent.StartFlow,
DisplayName = "MyPage",
EntryFulfillment = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentArgs
{
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageTextArgs
{
Texts = new[]
{
"Welcome to page",
},
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
EventHandlers = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerArgs
{
Event = "some-event",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentArgs
{
ReturnPartialResponses = true,
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageTextArgs
{
Texts = new[]
{
"Some text",
},
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
},
},
Form = new Gcp.Diagflow.Inputs.CxPageFormArgs
{
Parameters = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterArgs
{
DisplayName = "param1",
EntityType = "projects/-/locations/-/agents/-/entityTypes/sys.date",
DefaultValue = JsonSerializer.Serialize("2000-01-01"),
FillBehavior = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorArgs
{
InitialPromptFulfillment = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs
{
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs
{
Texts = new[]
{
"Please provide param1",
},
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
RepromptEventHandlers = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs
{
Event = "sys.no-match-1",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs
{
ReturnPartialResponses = true,
Webhook = myWebhook.Id,
Tag = "some-tag",
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs
{
Texts = new[]
{
"Please provide param1",
},
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs
{
Event = "sys.no-match-2",
TargetFlow = agent.StartFlow,
},
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs
{
Event = "sys.no-match-3",
TargetPage = myPage2.Id,
},
},
},
Required = true,
Redact = true,
AdvancedSettings = new Gcp.Diagflow.Inputs.CxPageFormParameterAdvancedSettingsArgs
{
DtmfSettings = new Gcp.Diagflow.Inputs.CxPageFormParameterAdvancedSettingsDtmfSettingsArgs
{
Enabled = true,
MaxDigits = 1,
FinishDigit = "#",
},
},
},
},
},
TransitionRoutes = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteArgs
{
Condition = "$page.params.status = 'FINAL'",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentArgs
{
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
Channel = "some-channel",
Text = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageTextArgs
{
Texts = new[]
{
"information completed, navigating to page 2",
},
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
Payload = @" {""some-key"": ""some-value"", ""other-key"": [""other-value""]}
",
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs
{
Text = "some output text",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs
{
Ssml = @" <speak>Some example <say-as interpret-as=""characters"">SSML XML</say-as></speak>
",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = @" {""some-metadata-key"": ""some-value"", ""other-metadata-key"": 1234}
",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
PlayAudio = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "http://example.com/some-audio-file.mp3",
},
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "1-234-567-8901",
},
},
},
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs
{
Parameter = "some-param",
Value = "123.45",
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs
{
Parameter = "another-param",
Value = JsonSerializer.Serialize("abc"),
},
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs
{
Parameter = "other-param",
Value = JsonSerializer.Serialize(new[]
{
"foo",
}),
},
},
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs
{
Cases = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.5",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"First case",
},
},
},
},
new Dictionary<string, object?>
{
["additionalCases"] = new Dictionary<string, object?>
{
["cases"] = new[]
{
new Dictionary<string, object?>
{
["condition"] = "$sys.func.RAND() < 0.2",
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Nested case",
},
},
},
},
},
},
},
},
},
},
},
new Dictionary<string, object?>
{
["caseContent"] = new[]
{
new Dictionary<string, object?>
{
["message"] = new Dictionary<string, object?>
{
["text"] = new Dictionary<string, object?>
{
["text"] = new[]
{
"Final case",
},
},
},
},
},
},
}),
},
},
},
TargetPage = myPage2.Id,
},
},
AdvancedSettings = new Gcp.Diagflow.Inputs.CxPageAdvancedSettingsArgs
{
DtmfSettings = new Gcp.Diagflow.Inputs.CxPageAdvancedSettingsDtmfSettingsArgs
{
Enabled = true,
MaxDigits = 1,
FinishDigit = "#",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.diagflow.CxAgent;
import com.pulumi.gcp.diagflow.CxAgentArgs;
import com.pulumi.gcp.diagflow.inputs.CxAgentSpeechToTextSettingsArgs;
import com.pulumi.gcp.diagflow.CxPage;
import com.pulumi.gcp.diagflow.CxPageArgs;
import com.pulumi.gcp.diagflow.CxWebhook;
import com.pulumi.gcp.diagflow.CxWebhookArgs;
import com.pulumi.gcp.diagflow.inputs.CxWebhookGenericWebServiceArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageEntryFulfillmentArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageEventHandlerArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageEventHandlerTriggerFulfillmentArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageFormArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageTransitionRouteArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageTransitionRouteTriggerFulfillmentArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageAdvancedSettingsArgs;
import com.pulumi.gcp.diagflow.inputs.CxPageAdvancedSettingsDtmfSettingsArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var agent = new CxAgent("agent", CxAgentArgs.builder()
.displayName("dialogflowcx-agent")
.location("global")
.defaultLanguageCode("en")
.supportedLanguageCodes(
"fr",
"de",
"es")
.timeZone("America/New_York")
.description("Example description.")
.avatarUri("https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png")
.enableStackdriverLogging(true)
.enableSpellCorrection(true)
.speechToTextSettings(CxAgentSpeechToTextSettingsArgs.builder()
.enableSpeechAdaptation(true)
.build())
.build());
var myPage2 = new CxPage("myPage2", CxPageArgs.builder()
.parent(agent.startFlow())
.displayName("MyPage2")
.build());
var myWebhook = new CxWebhook("myWebhook", CxWebhookArgs.builder()
.parent(agent.id())
.displayName("MyWebhook")
.genericWebService(CxWebhookGenericWebServiceArgs.builder()
.uri("https://example.com")
.build())
.build());
var basicPage = new CxPage("basicPage", CxPageArgs.builder()
.parent(agent.startFlow())
.displayName("MyPage")
.entryFulfillment(CxPageEntryFulfillmentArgs.builder()
.messages(
CxPageEntryFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageEntryFulfillmentMessageTextArgs.builder()
.texts("Welcome to page")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageEntryFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEntryFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEntryFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageEntryFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.playAudio(CxPageEntryFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageEntryFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageEntryFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageEntryFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageEntryFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageEntryFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageEntryFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.eventHandlers(CxPageEventHandlerArgs.builder()
.event("some-event")
.triggerFulfillment(CxPageEventHandlerTriggerFulfillmentArgs.builder()
.returnPartialResponses(true)
.messages(
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageEventHandlerTriggerFulfillmentMessageTextArgs.builder()
.texts("Some text")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.playAudio(CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.build())
.form(CxPageFormArgs.builder()
.parameters(CxPageFormParameterArgs.builder()
.displayName("param1")
.entityType("projects/-/locations/-/agents/-/entityTypes/sys.date")
.defaultValue(serializeJson(
"2000-01-01"))
.fillBehavior(CxPageFormParameterFillBehaviorArgs.builder()
.initialPromptFulfillment(CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs.builder()
.messages(
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs.builder()
.texts("Please provide param1")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.playAudio(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.repromptEventHandlers(
CxPageFormParameterFillBehaviorRepromptEventHandlerArgs.builder()
.event("sys.no-match-1")
.triggerFulfillment(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs.builder()
.returnPartialResponses(true)
.webhook(myWebhook.id())
.tag("some-tag")
.messages(
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs.builder()
.texts("Please provide param1")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.playAudio(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerArgs.builder()
.event("sys.no-match-2")
.targetFlow(agent.startFlow())
.build(),
CxPageFormParameterFillBehaviorRepromptEventHandlerArgs.builder()
.event("sys.no-match-3")
.targetPage(myPage2.id())
.build())
.build())
.required("true")
.redact("true")
.advancedSettings(CxPageFormParameterAdvancedSettingsArgs.builder()
.dtmfSettings(CxPageFormParameterAdvancedSettingsDtmfSettingsArgs.builder()
.enabled(true)
.maxDigits(1)
.finishDigit("#")
.build())
.build())
.build())
.build())
.transitionRoutes(CxPageTransitionRouteArgs.builder()
.condition("$page.params.status = 'FINAL'")
.triggerFulfillment(CxPageTransitionRouteTriggerFulfillmentArgs.builder()
.messages(
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.channel("some-channel")
.text(CxPageTransitionRouteTriggerFulfillmentMessageTextArgs.builder()
.texts("information completed, navigating to page 2")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.payload("""
{"some-key": "some-value", "other-key": ["other-value"]}
""")
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.conversationSuccess(CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.text("some output text")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.outputAudioText(CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.ssml("""
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
""")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.liveAgentHandoff(CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("""
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
""")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.playAudio(CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("http://example.com/some-audio-file.mp3")
.build())
.build(),
CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.telephonyTransferCall(CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("1-234-567-8901")
.build())
.build())
.setParameterActions(
CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("some-param")
.value("123.45")
.build(),
CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("another-param")
.value(serializeJson(
"abc"))
.build(),
CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("other-param")
.value(serializeJson(
jsonArray("foo")))
.build())
.conditionalCases(CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs.builder()
.cases(serializeJson(
jsonArray(
jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.5"),
jsonProperty("caseContent", jsonArray(
jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("First case"))
))
))
),
jsonObject(
jsonProperty("additionalCases", jsonObject(
jsonProperty("cases", jsonArray(jsonObject(
jsonProperty("condition", "$sys.func.RAND() < 0.2"),
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Nested case"))
))
))
)))
)))
))
)
))
),
jsonObject(
jsonProperty("caseContent", jsonArray(jsonObject(
jsonProperty("message", jsonObject(
jsonProperty("text", jsonObject(
jsonProperty("text", jsonArray("Final case"))
))
))
)))
)
)))
.build())
.build())
.targetPage(myPage2.id())
.build())
.advancedSettings(CxPageAdvancedSettingsArgs.builder()
.dtmfSettings(CxPageAdvancedSettingsDtmfSettingsArgs.builder()
.enabled(true)
.maxDigits(1)
.finishDigit("#")
.build())
.build())
.build());
}
}
resources:
agent:
type: gcp:diagflow:CxAgent
properties:
displayName: dialogflowcx-agent
location: global
defaultLanguageCode: en
supportedLanguageCodes:
- fr
- de
- es
timeZone: America/New_York
description: Example description.
avatarUri: https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png
enableStackdriverLogging: true
enableSpellCorrection: true
speechToTextSettings:
enableSpeechAdaptation: true
basicPage:
type: gcp:diagflow:CxPage
name: basic_page
properties:
parent: ${agent.startFlow}
displayName: MyPage
entryFulfillment:
messages:
- channel: some-channel
text:
texts:
- Welcome to page
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
eventHandlers:
- event: some-event
triggerFulfillment:
returnPartialResponses: true
messages:
- channel: some-channel
text:
texts:
- Some text
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
form:
parameters:
- displayName: param1
entityType: projects/-/locations/-/agents/-/entityTypes/sys.date
defaultValue:
fn::toJSON: 2000-01-01
fillBehavior:
initialPromptFulfillment:
messages:
- channel: some-channel
text:
texts:
- Please provide param1
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
repromptEventHandlers:
- event: sys.no-match-1
triggerFulfillment:
returnPartialResponses: true
webhook: ${myWebhook.id}
tag: some-tag
messages:
- channel: some-channel
text:
texts:
- Please provide param1
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
- event: sys.no-match-2
targetFlow: ${agent.startFlow}
- event: sys.no-match-3
targetPage: ${myPage2.id}
required: 'true'
redact: 'true'
advancedSettings:
dtmfSettings:
enabled: true
maxDigits: 1
finishDigit: '#'
transitionRoutes:
- condition: $page.params.status = 'FINAL'
triggerFulfillment:
messages:
- channel: some-channel
text:
texts:
- information completed, navigating to page 2
- payload: |2
{"some-key": "some-value", "other-key": ["other-value"]}
- conversationSuccess:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- outputAudioText:
text: some output text
- outputAudioText:
ssml: |2
<speak>Some example <say-as interpret-as="characters">SSML XML</say-as></speak>
- liveAgentHandoff:
metadata: |2
{"some-metadata-key": "some-value", "other-metadata-key": 1234}
- playAudio:
audioUri: http://example.com/some-audio-file.mp3
- telephonyTransferCall:
phoneNumber: 1-234-567-8901
setParameterActions:
- parameter: some-param
value: '123.45'
- parameter: another-param
value:
fn::toJSON: abc
- parameter: other-param
value:
fn::toJSON:
- foo
conditionalCases:
- cases:
fn::toJSON:
- condition: $sys.func.RAND() < 0.5
caseContent:
- message:
text:
text:
- First case
- additionalCases:
cases:
- condition: $sys.func.RAND() < 0.2
caseContent:
- message:
text:
text:
- Nested case
- caseContent:
- message:
text:
text:
- Final case
targetPage: ${myPage2.id}
advancedSettings:
dtmfSettings:
enabled: true
maxDigits: 1
finishDigit: '#'
myPage2:
type: gcp:diagflow:CxPage
name: my_page2
properties:
parent: ${agent.startFlow}
displayName: MyPage2
myWebhook:
type: gcp:diagflow:CxWebhook
name: my_webhook
properties:
parent: ${agent.id}
displayName: MyWebhook
genericWebService:
uri: https://example.com
Create CxPage Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new CxPage(name: string, args: CxPageArgs, opts?: CustomResourceOptions);
@overload
def CxPage(resource_name: str,
args: CxPageArgs,
opts: Optional[ResourceOptions] = None)
@overload
def CxPage(resource_name: str,
opts: Optional[ResourceOptions] = None,
display_name: Optional[str] = None,
advanced_settings: Optional[CxPageAdvancedSettingsArgs] = None,
entry_fulfillment: Optional[CxPageEntryFulfillmentArgs] = None,
event_handlers: Optional[Sequence[CxPageEventHandlerArgs]] = None,
form: Optional[CxPageFormArgs] = None,
language_code: Optional[str] = None,
parent: Optional[str] = None,
transition_route_groups: Optional[Sequence[str]] = None,
transition_routes: Optional[Sequence[CxPageTransitionRouteArgs]] = None)
func NewCxPage(ctx *Context, name string, args CxPageArgs, opts ...ResourceOption) (*CxPage, error)
public CxPage(string name, CxPageArgs args, CustomResourceOptions? opts = null)
public CxPage(String name, CxPageArgs args)
public CxPage(String name, CxPageArgs args, CustomResourceOptions options)
type: gcp:diagflow:CxPage
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args CxPageArgs
- 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 CxPageArgs
- 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 CxPageArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args CxPageArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args CxPageArgs
- 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 cxPageResource = new Gcp.Diagflow.CxPage("cxPageResource", new()
{
DisplayName = "string",
AdvancedSettings = new Gcp.Diagflow.Inputs.CxPageAdvancedSettingsArgs
{
DtmfSettings = new Gcp.Diagflow.Inputs.CxPageAdvancedSettingsDtmfSettingsArgs
{
Enabled = false,
FinishDigit = "string",
MaxDigits = 0,
},
},
EntryFulfillment = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentArgs
{
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentConditionalCaseArgs
{
Cases = "string",
},
},
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageArgs
{
Channel = "string",
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageConversationSuccessArgs
{
Metadata = "string",
},
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = "string",
},
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageOutputAudioTextArgs
{
AllowPlaybackInterruption = false,
Ssml = "string",
Text = "string",
},
Payload = "string",
PlayAudio = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessagePlayAudioArgs
{
AudioUri = "string",
AllowPlaybackInterruption = false,
},
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "string",
},
Text = new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentMessageTextArgs
{
AllowPlaybackInterruption = false,
Texts = new[]
{
"string",
},
},
},
},
ReturnPartialResponses = false,
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageEntryFulfillmentSetParameterActionArgs
{
Parameter = "string",
Value = "string",
},
},
Tag = "string",
Webhook = "string",
},
EventHandlers = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerArgs
{
Event = "string",
Name = "string",
TargetFlow = "string",
TargetPage = "string",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentArgs
{
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs
{
Cases = "string",
},
},
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageArgs
{
Channel = "string",
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = "string",
},
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = "string",
},
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
AllowPlaybackInterruption = false,
Ssml = "string",
Text = "string",
},
Payload = "string",
PlayAudio = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "string",
AllowPlaybackInterruption = false,
},
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "string",
},
Text = new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentMessageTextArgs
{
AllowPlaybackInterruption = false,
Texts = new[]
{
"string",
},
},
},
},
ReturnPartialResponses = false,
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "string",
Value = "string",
},
},
Tag = "string",
Webhook = "string",
},
},
},
Form = new Gcp.Diagflow.Inputs.CxPageFormArgs
{
Parameters = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterArgs
{
AdvancedSettings = new Gcp.Diagflow.Inputs.CxPageFormParameterAdvancedSettingsArgs
{
DtmfSettings = new Gcp.Diagflow.Inputs.CxPageFormParameterAdvancedSettingsDtmfSettingsArgs
{
Enabled = false,
FinishDigit = "string",
MaxDigits = 0,
},
},
DefaultValue = "string",
DisplayName = "string",
EntityType = "string",
FillBehavior = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorArgs
{
InitialPromptFulfillment = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs
{
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs
{
Cases = "string",
},
},
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs
{
Channel = "string",
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs
{
Metadata = "string",
},
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = "string",
},
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs
{
AllowPlaybackInterruption = false,
Ssml = "string",
Text = "string",
},
Payload = "string",
PlayAudio = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs
{
AudioUri = "string",
AllowPlaybackInterruption = false,
},
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "string",
},
Text = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs
{
AllowPlaybackInterruption = false,
Texts = new[]
{
"string",
},
},
},
},
ReturnPartialResponses = false,
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs
{
Parameter = "string",
Value = "string",
},
},
Tag = "string",
Webhook = "string",
},
RepromptEventHandlers = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs
{
Event = "string",
Name = "string",
TargetFlow = "string",
TargetPage = "string",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs
{
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs
{
Cases = "string",
},
},
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs
{
Channel = "string",
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = "string",
},
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = "string",
},
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs
{
AllowPlaybackInterruption = false,
Ssml = "string",
Text = "string",
},
Payload = "string",
PlayAudio = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "string",
AllowPlaybackInterruption = false,
},
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "string",
},
Text = new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs
{
AllowPlaybackInterruption = false,
Texts = new[]
{
"string",
},
},
},
},
ReturnPartialResponses = false,
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs
{
Parameter = "string",
Value = "string",
},
},
Tag = "string",
Webhook = "string",
},
},
},
},
IsList = false,
Redact = false,
Required = false,
},
},
},
LanguageCode = "string",
Parent = "string",
TransitionRouteGroups = new[]
{
"string",
},
TransitionRoutes = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteArgs
{
Condition = "string",
Intent = "string",
Name = "string",
TargetFlow = "string",
TargetPage = "string",
TriggerFulfillment = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentArgs
{
ConditionalCases = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs
{
Cases = "string",
},
},
Messages = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageArgs
{
Channel = "string",
ConversationSuccess = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs
{
Metadata = "string",
},
LiveAgentHandoff = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs
{
Metadata = "string",
},
OutputAudioText = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs
{
AllowPlaybackInterruption = false,
Ssml = "string",
Text = "string",
},
Payload = "string",
PlayAudio = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs
{
AudioUri = "string",
AllowPlaybackInterruption = false,
},
TelephonyTransferCall = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs
{
PhoneNumber = "string",
},
Text = new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentMessageTextArgs
{
AllowPlaybackInterruption = false,
Texts = new[]
{
"string",
},
},
},
},
ReturnPartialResponses = false,
SetParameterActions = new[]
{
new Gcp.Diagflow.Inputs.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs
{
Parameter = "string",
Value = "string",
},
},
Tag = "string",
Webhook = "string",
},
},
},
});
example, err := diagflow.NewCxPage(ctx, "cxPageResource", &diagflow.CxPageArgs{
DisplayName: pulumi.String("string"),
AdvancedSettings: &diagflow.CxPageAdvancedSettingsArgs{
DtmfSettings: &diagflow.CxPageAdvancedSettingsDtmfSettingsArgs{
Enabled: pulumi.Bool(false),
FinishDigit: pulumi.String("string"),
MaxDigits: pulumi.Int(0),
},
},
EntryFulfillment: &diagflow.CxPageEntryFulfillmentArgs{
ConditionalCases: diagflow.CxPageEntryFulfillmentConditionalCaseArray{
&diagflow.CxPageEntryFulfillmentConditionalCaseArgs{
Cases: pulumi.String("string"),
},
},
Messages: diagflow.CxPageEntryFulfillmentMessageArray{
&diagflow.CxPageEntryFulfillmentMessageArgs{
Channel: pulumi.String("string"),
ConversationSuccess: &diagflow.CxPageEntryFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String("string"),
},
LiveAgentHandoff: &diagflow.CxPageEntryFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String("string"),
},
OutputAudioText: &diagflow.CxPageEntryFulfillmentMessageOutputAudioTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Ssml: pulumi.String("string"),
Text: pulumi.String("string"),
},
Payload: pulumi.String("string"),
PlayAudio: &diagflow.CxPageEntryFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("string"),
AllowPlaybackInterruption: pulumi.Bool(false),
},
TelephonyTransferCall: &diagflow.CxPageEntryFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("string"),
},
Text: &diagflow.CxPageEntryFulfillmentMessageTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Texts: pulumi.StringArray{
pulumi.String("string"),
},
},
},
},
ReturnPartialResponses: pulumi.Bool(false),
SetParameterActions: diagflow.CxPageEntryFulfillmentSetParameterActionArray{
&diagflow.CxPageEntryFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Tag: pulumi.String("string"),
Webhook: pulumi.String("string"),
},
EventHandlers: diagflow.CxPageEventHandlerArray{
&diagflow.CxPageEventHandlerArgs{
Event: pulumi.String("string"),
Name: pulumi.String("string"),
TargetFlow: pulumi.String("string"),
TargetPage: pulumi.String("string"),
TriggerFulfillment: &diagflow.CxPageEventHandlerTriggerFulfillmentArgs{
ConditionalCases: diagflow.CxPageEventHandlerTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String("string"),
},
},
Messages: diagflow.CxPageEventHandlerTriggerFulfillmentMessageArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentMessageArgs{
Channel: pulumi.String("string"),
ConversationSuccess: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String("string"),
},
LiveAgentHandoff: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String("string"),
},
OutputAudioText: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Ssml: pulumi.String("string"),
Text: pulumi.String("string"),
},
Payload: pulumi.String("string"),
PlayAudio: &diagflow.CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("string"),
AllowPlaybackInterruption: pulumi.Bool(false),
},
TelephonyTransferCall: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("string"),
},
Text: &diagflow.CxPageEventHandlerTriggerFulfillmentMessageTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Texts: pulumi.StringArray{
pulumi.String("string"),
},
},
},
},
ReturnPartialResponses: pulumi.Bool(false),
SetParameterActions: diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Tag: pulumi.String("string"),
Webhook: pulumi.String("string"),
},
},
},
Form: &diagflow.CxPageFormArgs{
Parameters: diagflow.CxPageFormParameterArray{
&diagflow.CxPageFormParameterArgs{
AdvancedSettings: &diagflow.CxPageFormParameterAdvancedSettingsArgs{
DtmfSettings: &diagflow.CxPageFormParameterAdvancedSettingsDtmfSettingsArgs{
Enabled: pulumi.Bool(false),
FinishDigit: pulumi.String("string"),
MaxDigits: pulumi.Int(0),
},
},
DefaultValue: pulumi.String("string"),
DisplayName: pulumi.String("string"),
EntityType: pulumi.String("string"),
FillBehavior: &diagflow.CxPageFormParameterFillBehaviorArgs{
InitialPromptFulfillment: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs{
ConditionalCases: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs{
Cases: pulumi.String("string"),
},
},
Messages: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs{
Channel: pulumi.String("string"),
ConversationSuccess: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String("string"),
},
LiveAgentHandoff: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String("string"),
},
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Ssml: pulumi.String("string"),
Text: pulumi.String("string"),
},
Payload: pulumi.String("string"),
PlayAudio: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("string"),
AllowPlaybackInterruption: pulumi.Bool(false),
},
TelephonyTransferCall: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("string"),
},
Text: &diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Texts: pulumi.StringArray{
pulumi.String("string"),
},
},
},
},
ReturnPartialResponses: pulumi.Bool(false),
SetParameterActions: diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArray{
&diagflow.CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Tag: pulumi.String("string"),
Webhook: pulumi.String("string"),
},
RepromptEventHandlers: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerArgs{
Event: pulumi.String("string"),
Name: pulumi.String("string"),
TargetFlow: pulumi.String("string"),
TargetPage: pulumi.String("string"),
TriggerFulfillment: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs{
ConditionalCases: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String("string"),
},
},
Messages: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs{
Channel: pulumi.String("string"),
ConversationSuccess: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String("string"),
},
LiveAgentHandoff: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String("string"),
},
OutputAudioText: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Ssml: pulumi.String("string"),
Text: pulumi.String("string"),
},
Payload: pulumi.String("string"),
PlayAudio: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("string"),
AllowPlaybackInterruption: pulumi.Bool(false),
},
TelephonyTransferCall: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("string"),
},
Text: &diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Texts: pulumi.StringArray{
pulumi.String("string"),
},
},
},
},
ReturnPartialResponses: pulumi.Bool(false),
SetParameterActions: diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Tag: pulumi.String("string"),
Webhook: pulumi.String("string"),
},
},
},
},
IsList: pulumi.Bool(false),
Redact: pulumi.Bool(false),
Required: pulumi.Bool(false),
},
},
},
LanguageCode: pulumi.String("string"),
Parent: pulumi.String("string"),
TransitionRouteGroups: pulumi.StringArray{
pulumi.String("string"),
},
TransitionRoutes: diagflow.CxPageTransitionRouteArray{
&diagflow.CxPageTransitionRouteArgs{
Condition: pulumi.String("string"),
Intent: pulumi.String("string"),
Name: pulumi.String("string"),
TargetFlow: pulumi.String("string"),
TargetPage: pulumi.String("string"),
TriggerFulfillment: &diagflow.CxPageTransitionRouteTriggerFulfillmentArgs{
ConditionalCases: diagflow.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs{
Cases: pulumi.String("string"),
},
},
Messages: diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentMessageArgs{
Channel: pulumi.String("string"),
ConversationSuccess: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs{
Metadata: pulumi.String("string"),
},
LiveAgentHandoff: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs{
Metadata: pulumi.String("string"),
},
OutputAudioText: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Ssml: pulumi.String("string"),
Text: pulumi.String("string"),
},
Payload: pulumi.String("string"),
PlayAudio: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs{
AudioUri: pulumi.String("string"),
AllowPlaybackInterruption: pulumi.Bool(false),
},
TelephonyTransferCall: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs{
PhoneNumber: pulumi.String("string"),
},
Text: &diagflow.CxPageTransitionRouteTriggerFulfillmentMessageTextArgs{
AllowPlaybackInterruption: pulumi.Bool(false),
Texts: pulumi.StringArray{
pulumi.String("string"),
},
},
},
},
ReturnPartialResponses: pulumi.Bool(false),
SetParameterActions: diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArray{
&diagflow.CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs{
Parameter: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Tag: pulumi.String("string"),
Webhook: pulumi.String("string"),
},
},
},
})
var cxPageResource = new CxPage("cxPageResource", CxPageArgs.builder()
.displayName("string")
.advancedSettings(CxPageAdvancedSettingsArgs.builder()
.dtmfSettings(CxPageAdvancedSettingsDtmfSettingsArgs.builder()
.enabled(false)
.finishDigit("string")
.maxDigits(0)
.build())
.build())
.entryFulfillment(CxPageEntryFulfillmentArgs.builder()
.conditionalCases(CxPageEntryFulfillmentConditionalCaseArgs.builder()
.cases("string")
.build())
.messages(CxPageEntryFulfillmentMessageArgs.builder()
.channel("string")
.conversationSuccess(CxPageEntryFulfillmentMessageConversationSuccessArgs.builder()
.metadata("string")
.build())
.liveAgentHandoff(CxPageEntryFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("string")
.build())
.outputAudioText(CxPageEntryFulfillmentMessageOutputAudioTextArgs.builder()
.allowPlaybackInterruption(false)
.ssml("string")
.text("string")
.build())
.payload("string")
.playAudio(CxPageEntryFulfillmentMessagePlayAudioArgs.builder()
.audioUri("string")
.allowPlaybackInterruption(false)
.build())
.telephonyTransferCall(CxPageEntryFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("string")
.build())
.text(CxPageEntryFulfillmentMessageTextArgs.builder()
.allowPlaybackInterruption(false)
.texts("string")
.build())
.build())
.returnPartialResponses(false)
.setParameterActions(CxPageEntryFulfillmentSetParameterActionArgs.builder()
.parameter("string")
.value("string")
.build())
.tag("string")
.webhook("string")
.build())
.eventHandlers(CxPageEventHandlerArgs.builder()
.event("string")
.name("string")
.targetFlow("string")
.targetPage("string")
.triggerFulfillment(CxPageEventHandlerTriggerFulfillmentArgs.builder()
.conditionalCases(CxPageEventHandlerTriggerFulfillmentConditionalCaseArgs.builder()
.cases("string")
.build())
.messages(CxPageEventHandlerTriggerFulfillmentMessageArgs.builder()
.channel("string")
.conversationSuccess(CxPageEventHandlerTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("string")
.build())
.liveAgentHandoff(CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("string")
.build())
.outputAudioText(CxPageEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.allowPlaybackInterruption(false)
.ssml("string")
.text("string")
.build())
.payload("string")
.playAudio(CxPageEventHandlerTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("string")
.allowPlaybackInterruption(false)
.build())
.telephonyTransferCall(CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("string")
.build())
.text(CxPageEventHandlerTriggerFulfillmentMessageTextArgs.builder()
.allowPlaybackInterruption(false)
.texts("string")
.build())
.build())
.returnPartialResponses(false)
.setParameterActions(CxPageEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("string")
.value("string")
.build())
.tag("string")
.webhook("string")
.build())
.build())
.form(CxPageFormArgs.builder()
.parameters(CxPageFormParameterArgs.builder()
.advancedSettings(CxPageFormParameterAdvancedSettingsArgs.builder()
.dtmfSettings(CxPageFormParameterAdvancedSettingsDtmfSettingsArgs.builder()
.enabled(false)
.finishDigit("string")
.maxDigits(0)
.build())
.build())
.defaultValue("string")
.displayName("string")
.entityType("string")
.fillBehavior(CxPageFormParameterFillBehaviorArgs.builder()
.initialPromptFulfillment(CxPageFormParameterFillBehaviorInitialPromptFulfillmentArgs.builder()
.conditionalCases(CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCaseArgs.builder()
.cases("string")
.build())
.messages(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageArgs.builder()
.channel("string")
.conversationSuccess(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccessArgs.builder()
.metadata("string")
.build())
.liveAgentHandoff(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("string")
.build())
.outputAudioText(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioTextArgs.builder()
.allowPlaybackInterruption(false)
.ssml("string")
.text("string")
.build())
.payload("string")
.playAudio(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudioArgs.builder()
.audioUri("string")
.allowPlaybackInterruption(false)
.build())
.telephonyTransferCall(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("string")
.build())
.text(CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTextArgs.builder()
.allowPlaybackInterruption(false)
.texts("string")
.build())
.build())
.returnPartialResponses(false)
.setParameterActions(CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterActionArgs.builder()
.parameter("string")
.value("string")
.build())
.tag("string")
.webhook("string")
.build())
.repromptEventHandlers(CxPageFormParameterFillBehaviorRepromptEventHandlerArgs.builder()
.event("string")
.name("string")
.targetFlow("string")
.targetPage("string")
.triggerFulfillment(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentArgs.builder()
.conditionalCases(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCaseArgs.builder()
.cases("string")
.build())
.messages(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageArgs.builder()
.channel("string")
.conversationSuccess(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("string")
.build())
.liveAgentHandoff(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("string")
.build())
.outputAudioText(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.allowPlaybackInterruption(false)
.ssml("string")
.text("string")
.build())
.payload("string")
.playAudio(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("string")
.allowPlaybackInterruption(false)
.build())
.telephonyTransferCall(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("string")
.build())
.text(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTextArgs.builder()
.allowPlaybackInterruption(false)
.texts("string")
.build())
.build())
.returnPartialResponses(false)
.setParameterActions(CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("string")
.value("string")
.build())
.tag("string")
.webhook("string")
.build())
.build())
.build())
.isList(false)
.redact(false)
.required(false)
.build())
.build())
.languageCode("string")
.parent("string")
.transitionRouteGroups("string")
.transitionRoutes(CxPageTransitionRouteArgs.builder()
.condition("string")
.intent("string")
.name("string")
.targetFlow("string")
.targetPage("string")
.triggerFulfillment(CxPageTransitionRouteTriggerFulfillmentArgs.builder()
.conditionalCases(CxPageTransitionRouteTriggerFulfillmentConditionalCaseArgs.builder()
.cases("string")
.build())
.messages(CxPageTransitionRouteTriggerFulfillmentMessageArgs.builder()
.channel("string")
.conversationSuccess(CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccessArgs.builder()
.metadata("string")
.build())
.liveAgentHandoff(CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoffArgs.builder()
.metadata("string")
.build())
.outputAudioText(CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioTextArgs.builder()
.allowPlaybackInterruption(false)
.ssml("string")
.text("string")
.build())
.payload("string")
.playAudio(CxPageTransitionRouteTriggerFulfillmentMessagePlayAudioArgs.builder()
.audioUri("string")
.allowPlaybackInterruption(false)
.build())
.telephonyTransferCall(CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCallArgs.builder()
.phoneNumber("string")
.build())
.text(CxPageTransitionRouteTriggerFulfillmentMessageTextArgs.builder()
.allowPlaybackInterruption(false)
.texts("string")
.build())
.build())
.returnPartialResponses(false)
.setParameterActions(CxPageTransitionRouteTriggerFulfillmentSetParameterActionArgs.builder()
.parameter("string")
.value("string")
.build())
.tag("string")
.webhook("string")
.build())
.build())
.build());
cx_page_resource = gcp.diagflow.CxPage("cxPageResource",
display_name="string",
advanced_settings={
"dtmf_settings": {
"enabled": False,
"finish_digit": "string",
"max_digits": 0,
},
},
entry_fulfillment={
"conditional_cases": [{
"cases": "string",
}],
"messages": [{
"channel": "string",
"conversation_success": {
"metadata": "string",
},
"live_agent_handoff": {
"metadata": "string",
},
"output_audio_text": {
"allow_playback_interruption": False,
"ssml": "string",
"text": "string",
},
"payload": "string",
"play_audio": {
"audio_uri": "string",
"allow_playback_interruption": False,
},
"telephony_transfer_call": {
"phone_number": "string",
},
"text": {
"allow_playback_interruption": False,
"texts": ["string"],
},
}],
"return_partial_responses": False,
"set_parameter_actions": [{
"parameter": "string",
"value": "string",
}],
"tag": "string",
"webhook": "string",
},
event_handlers=[{
"event": "string",
"name": "string",
"target_flow": "string",
"target_page": "string",
"trigger_fulfillment": {
"conditional_cases": [{
"cases": "string",
}],
"messages": [{
"channel": "string",
"conversation_success": {
"metadata": "string",
},
"live_agent_handoff": {
"metadata": "string",
},
"output_audio_text": {
"allow_playback_interruption": False,
"ssml": "string",
"text": "string",
},
"payload": "string",
"play_audio": {
"audio_uri": "string",
"allow_playback_interruption": False,
},
"telephony_transfer_call": {
"phone_number": "string",
},
"text": {
"allow_playback_interruption": False,
"texts": ["string"],
},
}],
"return_partial_responses": False,
"set_parameter_actions": [{
"parameter": "string",
"value": "string",
}],
"tag": "string",
"webhook": "string",
},
}],
form={
"parameters": [{
"advanced_settings": {
"dtmf_settings": {
"enabled": False,
"finish_digit": "string",
"max_digits": 0,
},
},
"default_value": "string",
"display_name": "string",
"entity_type": "string",
"fill_behavior": {
"initial_prompt_fulfillment": {
"conditional_cases": [{
"cases": "string",
}],
"messages": [{
"channel": "string",
"conversation_success": {
"metadata": "string",
},
"live_agent_handoff": {
"metadata": "string",
},
"output_audio_text": {
"allow_playback_interruption": False,
"ssml": "string",
"text": "string",
},
"payload": "string",
"play_audio": {
"audio_uri": "string",
"allow_playback_interruption": False,
},
"telephony_transfer_call": {
"phone_number": "string",
},
"text": {
"allow_playback_interruption": False,
"texts": ["string"],
},
}],
"return_partial_responses": False,
"set_parameter_actions": [{
"parameter": "string",
"value": "string",
}],
"tag": "string",
"webhook": "string",
},
"reprompt_event_handlers": [{
"event": "string",
"name": "string",
"target_flow": "string",
"target_page": "string",
"trigger_fulfillment": {
"conditional_cases": [{
"cases": "string",
}],
"messages": [{
"channel": "string",
"conversation_success": {
"metadata": "string",
},
"live_agent_handoff": {
"metadata": "string",
},
"output_audio_text": {
"allow_playback_interruption": False,
"ssml": "string",
"text": "string",
},
"payload": "string",
"play_audio": {
"audio_uri": "string",
"allow_playback_interruption": False,
},
"telephony_transfer_call": {
"phone_number": "string",
},
"text": {
"allow_playback_interruption": False,
"texts": ["string"],
},
}],
"return_partial_responses": False,
"set_parameter_actions": [{
"parameter": "string",
"value": "string",
}],
"tag": "string",
"webhook": "string",
},
}],
},
"is_list": False,
"redact": False,
"required": False,
}],
},
language_code="string",
parent="string",
transition_route_groups=["string"],
transition_routes=[{
"condition": "string",
"intent": "string",
"name": "string",
"target_flow": "string",
"target_page": "string",
"trigger_fulfillment": {
"conditional_cases": [{
"cases": "string",
}],
"messages": [{
"channel": "string",
"conversation_success": {
"metadata": "string",
},
"live_agent_handoff": {
"metadata": "string",
},
"output_audio_text": {
"allow_playback_interruption": False,
"ssml": "string",
"text": "string",
},
"payload": "string",
"play_audio": {
"audio_uri": "string",
"allow_playback_interruption": False,
},
"telephony_transfer_call": {
"phone_number": "string",
},
"text": {
"allow_playback_interruption": False,
"texts": ["string"],
},
}],
"return_partial_responses": False,
"set_parameter_actions": [{
"parameter": "string",
"value": "string",
}],
"tag": "string",
"webhook": "string",
},
}])
const cxPageResource = new gcp.diagflow.CxPage("cxPageResource", {
displayName: "string",
advancedSettings: {
dtmfSettings: {
enabled: false,
finishDigit: "string",
maxDigits: 0,
},
},
entryFulfillment: {
conditionalCases: [{
cases: "string",
}],
messages: [{
channel: "string",
conversationSuccess: {
metadata: "string",
},
liveAgentHandoff: {
metadata: "string",
},
outputAudioText: {
allowPlaybackInterruption: false,
ssml: "string",
text: "string",
},
payload: "string",
playAudio: {
audioUri: "string",
allowPlaybackInterruption: false,
},
telephonyTransferCall: {
phoneNumber: "string",
},
text: {
allowPlaybackInterruption: false,
texts: ["string"],
},
}],
returnPartialResponses: false,
setParameterActions: [{
parameter: "string",
value: "string",
}],
tag: "string",
webhook: "string",
},
eventHandlers: [{
event: "string",
name: "string",
targetFlow: "string",
targetPage: "string",
triggerFulfillment: {
conditionalCases: [{
cases: "string",
}],
messages: [{
channel: "string",
conversationSuccess: {
metadata: "string",
},
liveAgentHandoff: {
metadata: "string",
},
outputAudioText: {
allowPlaybackInterruption: false,
ssml: "string",
text: "string",
},
payload: "string",
playAudio: {
audioUri: "string",
allowPlaybackInterruption: false,
},
telephonyTransferCall: {
phoneNumber: "string",
},
text: {
allowPlaybackInterruption: false,
texts: ["string"],
},
}],
returnPartialResponses: false,
setParameterActions: [{
parameter: "string",
value: "string",
}],
tag: "string",
webhook: "string",
},
}],
form: {
parameters: [{
advancedSettings: {
dtmfSettings: {
enabled: false,
finishDigit: "string",
maxDigits: 0,
},
},
defaultValue: "string",
displayName: "string",
entityType: "string",
fillBehavior: {
initialPromptFulfillment: {
conditionalCases: [{
cases: "string",
}],
messages: [{
channel: "string",
conversationSuccess: {
metadata: "string",
},
liveAgentHandoff: {
metadata: "string",
},
outputAudioText: {
allowPlaybackInterruption: false,
ssml: "string",
text: "string",
},
payload: "string",
playAudio: {
audioUri: "string",
allowPlaybackInterruption: false,
},
telephonyTransferCall: {
phoneNumber: "string",
},
text: {
allowPlaybackInterruption: false,
texts: ["string"],
},
}],
returnPartialResponses: false,
setParameterActions: [{
parameter: "string",
value: "string",
}],
tag: "string",
webhook: "string",
},
repromptEventHandlers: [{
event: "string",
name: "string",
targetFlow: "string",
targetPage: "string",
triggerFulfillment: {
conditionalCases: [{
cases: "string",
}],
messages: [{
channel: "string",
conversationSuccess: {
metadata: "string",
},
liveAgentHandoff: {
metadata: "string",
},
outputAudioText: {
allowPlaybackInterruption: false,
ssml: "string",
text: "string",
},
payload: "string",
playAudio: {
audioUri: "string",
allowPlaybackInterruption: false,
},
telephonyTransferCall: {
phoneNumber: "string",
},
text: {
allowPlaybackInterruption: false,
texts: ["string"],
},
}],
returnPartialResponses: false,
setParameterActions: [{
parameter: "string",
value: "string",
}],
tag: "string",
webhook: "string",
},
}],
},
isList: false,
redact: false,
required: false,
}],
},
languageCode: "string",
parent: "string",
transitionRouteGroups: ["string"],
transitionRoutes: [{
condition: "string",
intent: "string",
name: "string",
targetFlow: "string",
targetPage: "string",
triggerFulfillment: {
conditionalCases: [{
cases: "string",
}],
messages: [{
channel: "string",
conversationSuccess: {
metadata: "string",
},
liveAgentHandoff: {
metadata: "string",
},
outputAudioText: {
allowPlaybackInterruption: false,
ssml: "string",
text: "string",
},
payload: "string",
playAudio: {
audioUri: "string",
allowPlaybackInterruption: false,
},
telephonyTransferCall: {
phoneNumber: "string",
},
text: {
allowPlaybackInterruption: false,
texts: ["string"],
},
}],
returnPartialResponses: false,
setParameterActions: [{
parameter: "string",
value: "string",
}],
tag: "string",
webhook: "string",
},
}],
});
type: gcp:diagflow:CxPage
properties:
advancedSettings:
dtmfSettings:
enabled: false
finishDigit: string
maxDigits: 0
displayName: string
entryFulfillment:
conditionalCases:
- cases: string
messages:
- channel: string
conversationSuccess:
metadata: string
liveAgentHandoff:
metadata: string
outputAudioText:
allowPlaybackInterruption: false
ssml: string
text: string
payload: string
playAudio:
allowPlaybackInterruption: false
audioUri: string
telephonyTransferCall:
phoneNumber: string
text:
allowPlaybackInterruption: false
texts:
- string
returnPartialResponses: false
setParameterActions:
- parameter: string
value: string
tag: string
webhook: string
eventHandlers:
- event: string
name: string
targetFlow: string
targetPage: string
triggerFulfillment:
conditionalCases:
- cases: string
messages:
- channel: string
conversationSuccess:
metadata: string
liveAgentHandoff:
metadata: string
outputAudioText:
allowPlaybackInterruption: false
ssml: string
text: string
payload: string
playAudio:
allowPlaybackInterruption: false
audioUri: string
telephonyTransferCall:
phoneNumber: string
text:
allowPlaybackInterruption: false
texts:
- string
returnPartialResponses: false
setParameterActions:
- parameter: string
value: string
tag: string
webhook: string
form:
parameters:
- advancedSettings:
dtmfSettings:
enabled: false
finishDigit: string
maxDigits: 0
defaultValue: string
displayName: string
entityType: string
fillBehavior:
initialPromptFulfillment:
conditionalCases:
- cases: string
messages:
- channel: string
conversationSuccess:
metadata: string
liveAgentHandoff:
metadata: string
outputAudioText:
allowPlaybackInterruption: false
ssml: string
text: string
payload: string
playAudio:
allowPlaybackInterruption: false
audioUri: string
telephonyTransferCall:
phoneNumber: string
text:
allowPlaybackInterruption: false
texts:
- string
returnPartialResponses: false
setParameterActions:
- parameter: string
value: string
tag: string
webhook: string
repromptEventHandlers:
- event: string
name: string
targetFlow: string
targetPage: string
triggerFulfillment:
conditionalCases:
- cases: string
messages:
- channel: string
conversationSuccess:
metadata: string
liveAgentHandoff:
metadata: string
outputAudioText:
allowPlaybackInterruption: false
ssml: string
text: string
payload: string
playAudio:
allowPlaybackInterruption: false
audioUri: string
telephonyTransferCall:
phoneNumber: string
text:
allowPlaybackInterruption: false
texts:
- string
returnPartialResponses: false
setParameterActions:
- parameter: string
value: string
tag: string
webhook: string
isList: false
redact: false
required: false
languageCode: string
parent: string
transitionRouteGroups:
- string
transitionRoutes:
- condition: string
intent: string
name: string
targetFlow: string
targetPage: string
triggerFulfillment:
conditionalCases:
- cases: string
messages:
- channel: string
conversationSuccess:
metadata: string
liveAgentHandoff:
metadata: string
outputAudioText:
allowPlaybackInterruption: false
ssml: string
text: string
payload: string
playAudio:
allowPlaybackInterruption: false
audioUri: string
telephonyTransferCall:
phoneNumber: string
text:
allowPlaybackInterruption: false
texts:
- string
returnPartialResponses: false
setParameterActions:
- parameter: string
value: string
tag: string
webhook: string
CxPage 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 CxPage resource accepts the following input properties:
- Display
Name string - The human-readable name of the page, unique within the agent.
- Advanced
Settings CxPage Advanced Settings - Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Entry
Fulfillment CxPage Entry Fulfillment - The fulfillment to call when the session is entering the page. Structure is documented below.
- Event
Handlers List<CxPage Event Handler> - Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- Form
Cx
Page Form - The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- Language
Code string - The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- Parent string
- The flow to create a page for. Format: projects//locations//agents//flows/.
- Transition
Route List<string>Groups - Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- Transition
Routes List<CxPage Transition Route> - A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- Display
Name string - The human-readable name of the page, unique within the agent.
- Advanced
Settings CxPage Advanced Settings Args - Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- Entry
Fulfillment CxPage Entry Fulfillment Args - The fulfillment to call when the session is entering the page. Structure is documented below.
- Event
Handlers []CxPage Event Handler Args - Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- Form
Cx
Page Form Args - The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- Language
Code string - The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- Parent string
- The flow to create a page for. Format: projects//locations//agents//flows/.
- Transition
Route []stringGroups - Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- Transition
Routes []CxPage Transition Route Args - A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display
Name String - The human-readable name of the page, unique within the agent.
- advanced
Settings CxPage Advanced Settings - Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry
Fulfillment CxPage Entry Fulfillment - The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers List<CxPage Event Handler> - Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form - The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code String - The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent String
- The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route List<String>Groups - Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes List<CxPage Transition Route> - A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display
Name string - The human-readable name of the page, unique within the agent.
- advanced
Settings CxPage Advanced Settings - Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry
Fulfillment CxPage Entry Fulfillment - The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers CxPage Event Handler[] - Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form - The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code string - The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent string
- The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route string[]Groups - Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition
Routes CxPage Transition Route[] - A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display_
name str - The human-readable name of the page, unique within the agent.
- advanced_
settings CxPage Advanced Settings Args - Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry_
fulfillment CxPage Entry Fulfillment Args - The fulfillment to call when the session is entering the page. Structure is documented below.
- event_
handlers Sequence[CxPage Event Handler Args] - Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form
Cx
Page Form Args - The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language_
code str - The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent str
- The flow to create a page for. Format: projects//locations//agents//flows/.
- transition_
route_ Sequence[str]groups - Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page. If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route > page's transition route group > flow's transition routes. If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:projects//locations//agents//flows//transitionRouteGroups/.
- transition_
routes Sequence[CxPage Transition Route Args] - A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: TransitionRoutes defined in the page with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in flow with intent specified. TransitionRoutes defined in the transition route groups with intent specified. TransitionRoutes defined in the page with only condition specified. TransitionRoutes defined in the transition route groups with only condition specified. Structure is documented below.
- display
Name String - The human-readable name of the page, unique within the agent.
- advanced
Settings Property Map - Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. Structure is documented below.
- entry
Fulfillment Property Map - The fulfillment to call when the session is entering the page. Structure is documented below.
- event
Handlers List<Property Map> - Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
- form Property Map
- The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
- language
Code String - The language of the following fields in page: Page.entry_fulfillment.messages Page.entry_fulfillment.conditional_cases Page.event_handlers.trigger_fulfillment.messages Page.event_handlers.trigger_fulfillment.conditional_cases Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases Page.form.parameters.fill_behavior.reprompt_event_handlers.messages Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases Page.transition_routes.trigger_fulfillment.messages Page.transition_routes.trigger_fulfillment.conditional_cases If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
- parent String
- The flow to create a page for. Format: projects//locations//agents//flows/.
- transition
Route List<String>Groups - Ordered list of TransitionRouteGroups associated with the p