1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. diagflow
  5. CxPage
Google Cloud Classic v8.8.0 published on Thursday, Nov 7, 2024 by Pulumi

gcp.diagflow.CxPage

Explore with Pulumi AI

gcp logo
Google Cloud Classic v8.8.0 published on Thursday, Nov 7, 2024 by Pulumi

    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:

    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:

    DisplayName string
    The human-readable name of the page, unique within the agent.


    AdvancedSettings CxPageAdvancedSettings
    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.
    EntryFulfillment CxPageEntryFulfillment
    The fulfillment to call when the session is entering the page. Structure is documented below.
    EventHandlers List<CxPageEventHandler>
    Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
    Form CxPageForm
    The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
    LanguageCode 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/.
    TransitionRouteGroups List<string>
    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/.
    TransitionRoutes List<CxPageTransitionRoute>
    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.
    DisplayName string
    The human-readable name of the page, unique within the agent.


    AdvancedSettings CxPageAdvancedSettingsArgs
    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.
    EntryFulfillment CxPageEntryFulfillmentArgs
    The fulfillment to call when the session is entering the page. Structure is documented below.
    EventHandlers []CxPageEventHandlerArgs
    Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
    Form CxPageFormArgs
    The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
    LanguageCode 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/.
    TransitionRouteGroups []string
    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/.
    TransitionRoutes []CxPageTransitionRouteArgs
    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.
    displayName String
    The human-readable name of the page, unique within the agent.


    advancedSettings CxPageAdvancedSettings
    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.
    entryFulfillment CxPageEntryFulfillment
    The fulfillment to call when the session is entering the page. Structure is documented below.
    eventHandlers List<CxPageEventHandler>
    Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
    form CxPageForm
    The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
    languageCode 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/.
    transitionRouteGroups List<String>
    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/.
    transitionRoutes List<CxPageTransitionRoute>
    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.
    displayName string
    The human-readable name of the page, unique within the agent.


    advancedSettings CxPageAdvancedSettings
    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.
    entryFulfillment CxPageEntryFulfillment
    The fulfillment to call when the session is entering the page. Structure is documented below.
    eventHandlers CxPageEventHandler[]
    Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
    form CxPageForm
    The form associated with the page, used for collecting parameters relevant to the page. Structure is documented below.
    languageCode 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/.
    transitionRouteGroups string[]
    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/.
    transitionRoutes CxPageTransitionRoute[]
    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 CxPageAdvancedSettingsArgs
    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 CxPageEntryFulfillmentArgs
    The fulfillment to call when the session is entering the page. Structure is documented below.
    event_handlers Sequence[CxPageEventHandlerArgs]
    Handlers associated with the page to handle events such as webhook errors, no match or no input. Structure is documented below.
    form CxPageFormArgs
    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_groups Sequence[str]
    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[CxPageTransitionRouteArgs]
    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.
    displayName String
    The human-readable name of the page, unique within the agent.


    advancedSettings 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.
    entryFulfillment Property Map
    The fulfillment to call when the session is entering the page. Structure is documented below.
    eventHandlers 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.
    languageCode 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/.
    transitionRouteGroups List<String>
    Ordered list of TransitionRouteGroups associated with the p