1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.dialogflow.cx.v3; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/cloud/dialogflow/cx/v3/advanced_settings.proto"; 24import "google/cloud/dialogflow/cx/v3/data_store_connection.proto"; 25import "google/cloud/dialogflow/cx/v3/fulfillment.proto"; 26import "google/protobuf/empty.proto"; 27import "google/protobuf/field_mask.proto"; 28import "google/protobuf/struct.proto"; 29 30option cc_enable_arenas = true; 31option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3"; 32option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb"; 33option java_multiple_files = true; 34option java_outer_classname = "PageProto"; 35option java_package = "com.google.cloud.dialogflow.cx.v3"; 36option objc_class_prefix = "DF"; 37option ruby_package = "Google::Cloud::Dialogflow::CX::V3"; 38 39// Service for managing [Pages][google.cloud.dialogflow.cx.v3.Page]. 40service Pages { 41 option (google.api.default_host) = "dialogflow.googleapis.com"; 42 option (google.api.oauth_scopes) = 43 "https://www.googleapis.com/auth/cloud-platform," 44 "https://www.googleapis.com/auth/dialogflow"; 45 46 // Returns the list of all pages in the specified flow. 47 rpc ListPages(ListPagesRequest) returns (ListPagesResponse) { 48 option (google.api.http) = { 49 get: "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/pages" 50 }; 51 option (google.api.method_signature) = "parent"; 52 } 53 54 // Retrieves the specified page. 55 rpc GetPage(GetPageRequest) returns (Page) { 56 option (google.api.http) = { 57 get: "/v3/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" 58 }; 59 option (google.api.method_signature) = "name"; 60 } 61 62 // Creates a page in the specified flow. 63 // 64 // Note: You should always train a flow prior to sending it queries. See the 65 // [training 66 // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training). 67 rpc CreatePage(CreatePageRequest) returns (Page) { 68 option (google.api.http) = { 69 post: "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/pages" 70 body: "page" 71 }; 72 option (google.api.method_signature) = "parent,page"; 73 } 74 75 // Updates the specified page. 76 // 77 // Note: You should always train a flow prior to sending it queries. See the 78 // [training 79 // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training). 80 rpc UpdatePage(UpdatePageRequest) returns (Page) { 81 option (google.api.http) = { 82 patch: "/v3/{page.name=projects/*/locations/*/agents/*/flows/*/pages/*}" 83 body: "page" 84 }; 85 option (google.api.method_signature) = "page,update_mask"; 86 } 87 88 // Deletes the specified page. 89 // 90 // Note: You should always train a flow prior to sending it queries. See the 91 // [training 92 // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training). 93 rpc DeletePage(DeletePageRequest) returns (google.protobuf.Empty) { 94 option (google.api.http) = { 95 delete: "/v3/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" 96 }; 97 option (google.api.method_signature) = "name"; 98 } 99} 100 101// A Dialogflow CX conversation (session) can be described and visualized as a 102// state machine. The states of a CX session are represented by pages. 103// 104// For each flow, you define many pages, where your combined pages can handle a 105// complete conversation on the topics the flow is designed for. At any given 106// moment, exactly one page is the current page, the current page is considered 107// active, and the flow associated with that page is considered active. Every 108// flow has a special start page. When a flow initially becomes active, the 109// start page page becomes the current page. For each conversational turn, the 110// current page will either stay the same or transition to another page. 111// 112// You configure each page to collect information from the end-user that is 113// relevant for the conversational state represented by the page. 114// 115// For more information, see the 116// [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page). 117message Page { 118 option (google.api.resource) = { 119 type: "dialogflow.googleapis.com/Page" 120 pattern: "projects/{project}/locations/{location}/agents/{agent}/flows/{flow}/pages/{page}" 121 }; 122 123 // The unique identifier of the page. 124 // Required for the 125 // [Pages.UpdatePage][google.cloud.dialogflow.cx.v3.Pages.UpdatePage] method. 126 // [Pages.CreatePage][google.cloud.dialogflow.cx.v3.Pages.CreatePage] 127 // populates the name automatically. 128 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 129 // ID>/flows/<Flow ID>/pages/<Page ID>`. 130 string name = 1; 131 132 // Required. The human-readable name of the page, unique within the flow. 133 string display_name = 2 [(google.api.field_behavior) = REQUIRED]; 134 135 // The description of the page. The maximum length is 500 characters. 136 string description = 19; 137 138 // The fulfillment to call when the session is entering the page. 139 Fulfillment entry_fulfillment = 7; 140 141 // The form associated with the page, used for collecting parameters 142 // relevant to the page. 143 Form form = 4; 144 145 // Ordered list of 146 // [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3.TransitionRouteGroup] 147 // added to the page. Transition route groups must be unique within a page. If 148 // the page links both flow-level transition route groups and agent-level 149 // transition route groups, the flow-level ones will have higher priority and 150 // will be put before the agent-level ones. 151 // 152 // * If multiple transition routes within a page scope refer to the same 153 // intent, then the precedence order is: page's transition route -> page's 154 // transition route group -> flow's transition routes. 155 // 156 // * If multiple transition route groups within a page contain the same 157 // intent, then the first group in the ordered list takes precedence. 158 // 159 // Format:`projects/<Project ID>/locations/<Location ID>/agents/<Agent 160 // ID>/flows/<Flow ID>/transitionRouteGroups/<TransitionRouteGroup ID>` 161 // or `projects/<Project ID>/locations/<Location ID>/agents/<Agent 162 // ID>/transitionRouteGroups/<TransitionRouteGroup ID>` for agent-level 163 // groups. 164 repeated string transition_route_groups = 11 165 [(google.api.resource_reference) = { 166 type: "dialogflow.googleapis.com/TransitionRouteGroup" 167 }]; 168 169 // A list of transitions for the transition rules of this page. 170 // They route the conversation to another page in the same flow, or another 171 // flow. 172 // 173 // When we are in a certain page, the TransitionRoutes are evalauted in the 174 // following order: 175 // 176 // * TransitionRoutes defined in the page with intent specified. 177 // * TransitionRoutes defined in the 178 // [transition route 179 // groups][google.cloud.dialogflow.cx.v3.Page.transition_route_groups] 180 // with intent specified. 181 // * TransitionRoutes defined in flow with intent specified. 182 // * TransitionRoutes defined in the 183 // [transition route 184 // groups][google.cloud.dialogflow.cx.v3.Flow.transition_route_groups] 185 // with intent specified. 186 // * TransitionRoutes defined in the page with only condition specified. 187 // * TransitionRoutes defined in the 188 // [transition route 189 // groups][google.cloud.dialogflow.cx.v3.Page.transition_route_groups] 190 // with only condition specified. 191 repeated TransitionRoute transition_routes = 9; 192 193 // Handlers associated with the page to handle events such as webhook errors, 194 // no match or no input. 195 repeated EventHandler event_handlers = 10; 196 197 // Hierarchical advanced settings for this page. The settings exposed at the 198 // lower level overrides the settings exposed at the higher level. 199 AdvancedSettings advanced_settings = 13; 200 201 // Optional. Knowledge connector configuration. 202 KnowledgeConnectorSettings knowledge_connector_settings = 18 203 [(google.api.field_behavior) = OPTIONAL]; 204} 205 206// A form is a data model that groups related parameters that can be collected 207// from the user. The process in which the agent prompts the user and collects 208// parameter values from the user is called form filling. A form can be added to 209// a [page][google.cloud.dialogflow.cx.v3.Page]. When form filling is done, the 210// filled parameters will be written to the 211// [session][google.cloud.dialogflow.cx.v3.SessionInfo.parameters]. 212message Form { 213 // Represents a form parameter. 214 message Parameter { 215 // Configuration for how the filling of a parameter should be handled. 216 message FillBehavior { 217 // Required. The fulfillment to provide the initial prompt that the agent 218 // can present to the user in order to fill the parameter. 219 Fulfillment initial_prompt_fulfillment = 3 220 [(google.api.field_behavior) = REQUIRED]; 221 222 // The handlers for parameter-level events, used to provide reprompt for 223 // the parameter or transition to a different page/flow. The supported 224 // events are: 225 // * `sys.no-match-<N>`, where N can be from 1 to 6 226 // * `sys.no-match-default` 227 // * `sys.no-input-<N>`, where N can be from 1 to 6 228 // * `sys.no-input-default` 229 // * `sys.invalid-parameter` 230 // 231 // `initial_prompt_fulfillment` provides the first prompt for the 232 // parameter. 233 // 234 // If the user's response does not fill the parameter, a 235 // no-match/no-input event will be triggered, and the fulfillment 236 // associated with the `sys.no-match-1`/`sys.no-input-1` handler (if 237 // defined) will be called to provide a prompt. The 238 // `sys.no-match-2`/`sys.no-input-2` handler (if defined) will respond to 239 // the next no-match/no-input event, and so on. 240 // 241 // A `sys.no-match-default` or `sys.no-input-default` handler will be used 242 // to handle all following no-match/no-input events after all numbered 243 // no-match/no-input handlers for the parameter are consumed. 244 // 245 // A `sys.invalid-parameter` handler can be defined to handle the case 246 // where the parameter values have been `invalidated` by webhook. For 247 // example, if the user's response fill the parameter, however the 248 // parameter was invalidated by webhook, the fulfillment associated with 249 // the `sys.invalid-parameter` handler (if defined) will be called to 250 // provide a prompt. 251 // 252 // If the event handler for the corresponding event can't be found on the 253 // parameter, `initial_prompt_fulfillment` will be re-prompted. 254 repeated EventHandler reprompt_event_handlers = 5; 255 } 256 257 // Required. The human-readable name of the parameter, unique within the 258 // form. 259 string display_name = 1 [(google.api.field_behavior) = REQUIRED]; 260 261 // Indicates whether the parameter is required. Optional parameters will not 262 // trigger prompts; however, they are filled if the user specifies them. 263 // Required parameters must be filled before form filling concludes. 264 bool required = 2; 265 266 // Required. The entity type of the parameter. 267 // Format: `projects/-/locations/-/agents/-/entityTypes/<System Entity Type 268 // ID>` for system entity types (for example, 269 // `projects/-/locations/-/agents/-/entityTypes/sys.date`), or 270 // `projects/<Project ID>/locations/<Location ID>/agents/<Agent 271 // ID>/entityTypes/<Entity Type ID>` for developer entity types. 272 string entity_type = 3 [ 273 (google.api.field_behavior) = REQUIRED, 274 (google.api.resource_reference) = { 275 type: "dialogflow.googleapis.com/EntityType" 276 } 277 ]; 278 279 // Indicates whether the parameter represents a list of values. 280 bool is_list = 4; 281 282 // Required. Defines fill behavior for the parameter. 283 FillBehavior fill_behavior = 7 [(google.api.field_behavior) = REQUIRED]; 284 285 // The default value of an optional parameter. If the parameter is required, 286 // the default value will be ignored. 287 google.protobuf.Value default_value = 9; 288 289 // Indicates whether the parameter content should be redacted in log. If 290 // redaction is enabled, the parameter content will be replaced by parameter 291 // name during logging. 292 // Note: the parameter content is subject to redaction if either parameter 293 // level redaction or [entity type level 294 // redaction][google.cloud.dialogflow.cx.v3.EntityType.redact] is enabled. 295 bool redact = 11; 296 297 // Hierarchical advanced settings for this parameter. The settings exposed 298 // at the lower level overrides the settings exposed at the higher level. 299 AdvancedSettings advanced_settings = 12; 300 } 301 302 // Parameters to collect from the user. 303 repeated Parameter parameters = 1; 304} 305 306// An event handler specifies an 307// [event][google.cloud.dialogflow.cx.v3.EventHandler.event] that can be handled 308// during a session. When the specified event happens, the following actions are 309// taken in order: 310// 311// * If there is a 312// [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3.EventHandler.trigger_fulfillment] 313// associated with the event, it will be called. 314// * If there is a 315// [`target_page`][google.cloud.dialogflow.cx.v3.EventHandler.target_page] 316// associated with the event, the session will transition into the specified 317// page. 318// * If there is a 319// [`target_flow`][google.cloud.dialogflow.cx.v3.EventHandler.target_flow] 320// associated with the event, the session will transition into the specified 321// flow. 322message EventHandler { 323 // Output only. The unique identifier of this event handler. 324 string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 325 326 // Required. The name of the event to handle. 327 string event = 4 [(google.api.field_behavior) = REQUIRED]; 328 329 // The fulfillment to call when the event occurs. 330 // Handling webhook errors with a fulfillment enabled with webhook could 331 // cause infinite loop. It is invalid to specify such fulfillment for a 332 // handler handling webhooks. 333 Fulfillment trigger_fulfillment = 5; 334 335 // The target to transition to, either a page in the same host flow (the flow 336 // that owns this 337 // [TransitionRoute][google.cloud.dialogflow.cx.v3.TransitionRoute]), or 338 // another flow in the same agent. 339 oneof target { 340 // The target page to transition to. 341 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 342 // ID>/flows/<Flow ID>/pages/<Page ID>`. 343 string target_page = 2 [(google.api.resource_reference) = { 344 type: "dialogflow.googleapis.com/Page" 345 }]; 346 347 // The target flow to transition to. 348 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 349 // ID>/flows/<Flow ID>`. 350 string target_flow = 3 [(google.api.resource_reference) = { 351 type: "dialogflow.googleapis.com/Flow" 352 }]; 353 } 354} 355 356// A transition route specifies a [intent][google.cloud.dialogflow.cx.v3.Intent] 357// that can be matched and/or a data condition that can be evaluated during a 358// session. When a specified transition is matched, the following actions are 359// taken in order: 360// 361// * If there is a 362// [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3.TransitionRoute.trigger_fulfillment] 363// associated with the transition, it will be called. 364// * If there is a 365// [`target_page`][google.cloud.dialogflow.cx.v3.TransitionRoute.target_page] 366// associated with the transition, the session will transition into the 367// specified page. 368// * If there is a 369// [`target_flow`][google.cloud.dialogflow.cx.v3.TransitionRoute.target_flow] 370// associated with the transition, the session will transition into the 371// specified flow. 372message TransitionRoute { 373 // Output only. The unique identifier of this transition route. 374 string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 375 376 // Optional. The description of the transition route. The maximum length is 377 // 500 characters. 378 string description = 8 [(google.api.field_behavior) = OPTIONAL]; 379 380 // The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3.Intent]. 381 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 382 // ID>/intents/<Intent ID>`. 383 // Indicates that the transition can only happen when the given intent is 384 // matched. 385 // At least one of `intent` or `condition` must be specified. When both 386 // `intent` and `condition` are specified, the transition can only happen 387 // when both are fulfilled. 388 string intent = 1 [(google.api.resource_reference) = { 389 type: "dialogflow.googleapis.com/Intent" 390 }]; 391 392 // The condition to evaluate against [form 393 // parameters][google.cloud.dialogflow.cx.v3.Form.parameters] or [session 394 // parameters][google.cloud.dialogflow.cx.v3.SessionInfo.parameters]. 395 // 396 // See the [conditions 397 // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). 398 // At least one of `intent` or `condition` must be specified. When both 399 // `intent` and `condition` are specified, the transition can only happen 400 // when both are fulfilled. 401 string condition = 2; 402 403 // The fulfillment to call when the condition is satisfied. At least one of 404 // `trigger_fulfillment` and `target` must be specified. When both are 405 // defined, `trigger_fulfillment` is executed first. 406 Fulfillment trigger_fulfillment = 3; 407 408 // The target to transition to, either a page in the same host flow (the flow 409 // that owns this 410 // [TransitionRoute][google.cloud.dialogflow.cx.v3.TransitionRoute]), or 411 // another flow in the same agent. 412 oneof target { 413 // The target page to transition to. 414 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 415 // ID>/flows/<Flow ID>/pages/<Page ID>`. 416 string target_page = 4 [(google.api.resource_reference) = { 417 type: "dialogflow.googleapis.com/Page" 418 }]; 419 420 // The target flow to transition to. 421 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 422 // ID>/flows/<Flow ID>`. 423 string target_flow = 5 [(google.api.resource_reference) = { 424 type: "dialogflow.googleapis.com/Flow" 425 }]; 426 } 427} 428 429// The request message for 430// [Pages.ListPages][google.cloud.dialogflow.cx.v3.Pages.ListPages]. 431message ListPagesRequest { 432 // Required. The flow to list all pages for. 433 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 434 // ID>/flows/<Flow ID>`. 435 string parent = 1 [ 436 (google.api.field_behavior) = REQUIRED, 437 (google.api.resource_reference) = { 438 child_type: "dialogflow.googleapis.com/Page" 439 } 440 ]; 441 442 // The language to list pages for. The following fields are language 443 // dependent: 444 // 445 // * `Page.entry_fulfillment.messages` 446 // * `Page.entry_fulfillment.conditional_cases` 447 // * `Page.event_handlers.trigger_fulfillment.messages` 448 // * `Page.event_handlers.trigger_fulfillment.conditional_cases` 449 // * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` 450 // * 451 // `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` 452 // * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` 453 // * 454 // `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` 455 // * `Page.transition_routes.trigger_fulfillment.messages` 456 // * `Page.transition_routes.trigger_fulfillment.conditional_cases` 457 // 458 // If not specified, the agent's default language is used. 459 // [Many 460 // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) 461 // are supported. 462 // Note: languages must be enabled in the agent before they can be used. 463 string language_code = 2; 464 465 // The maximum number of items to return in a single page. By default 100 and 466 // at most 1000. 467 int32 page_size = 3; 468 469 // The next_page_token value returned from a previous list request. 470 string page_token = 4; 471} 472 473// The response message for 474// [Pages.ListPages][google.cloud.dialogflow.cx.v3.Pages.ListPages]. 475message ListPagesResponse { 476 // The list of pages. There will be a maximum number of items returned based 477 // on the page_size field in the request. 478 repeated Page pages = 1; 479 480 // Token to retrieve the next page of results, or empty if there are no more 481 // results in the list. 482 string next_page_token = 2; 483} 484 485// The request message for 486// [Pages.GetPage][google.cloud.dialogflow.cx.v3.Pages.GetPage]. 487message GetPageRequest { 488 // Required. The name of the page. 489 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 490 // ID>/flows/<Flow ID>/pages/<Page ID>`. 491 string name = 1 [ 492 (google.api.field_behavior) = REQUIRED, 493 (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Page" } 494 ]; 495 496 // The language to retrieve the page for. The following fields are language 497 // dependent: 498 // 499 // * `Page.entry_fulfillment.messages` 500 // * `Page.entry_fulfillment.conditional_cases` 501 // * `Page.event_handlers.trigger_fulfillment.messages` 502 // * `Page.event_handlers.trigger_fulfillment.conditional_cases` 503 // * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` 504 // * 505 // `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` 506 // * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` 507 // * 508 // `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` 509 // * `Page.transition_routes.trigger_fulfillment.messages` 510 // * `Page.transition_routes.trigger_fulfillment.conditional_cases` 511 // 512 // If not specified, the agent's default language is used. 513 // [Many 514 // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) 515 // are supported. 516 // Note: languages must be enabled in the agent before they can be used. 517 string language_code = 2; 518} 519 520// The request message for 521// [Pages.CreatePage][google.cloud.dialogflow.cx.v3.Pages.CreatePage]. 522message CreatePageRequest { 523 // Required. The flow to create a page for. 524 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 525 // ID>/flows/<Flow ID>`. 526 string parent = 1 [ 527 (google.api.field_behavior) = REQUIRED, 528 (google.api.resource_reference) = { 529 child_type: "dialogflow.googleapis.com/Page" 530 } 531 ]; 532 533 // Required. The page to create. 534 Page page = 2 [(google.api.field_behavior) = REQUIRED]; 535 536 // The language of the following fields in `page`: 537 // 538 // * `Page.entry_fulfillment.messages` 539 // * `Page.entry_fulfillment.conditional_cases` 540 // * `Page.event_handlers.trigger_fulfillment.messages` 541 // * `Page.event_handlers.trigger_fulfillment.conditional_cases` 542 // * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` 543 // * 544 // `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` 545 // * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` 546 // * 547 // `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` 548 // * `Page.transition_routes.trigger_fulfillment.messages` 549 // * `Page.transition_routes.trigger_fulfillment.conditional_cases` 550 // 551 // If not specified, the agent's default language is used. 552 // [Many 553 // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) 554 // are supported. 555 // Note: languages must be enabled in the agent before they can be used. 556 string language_code = 3; 557} 558 559// The request message for 560// [Pages.UpdatePage][google.cloud.dialogflow.cx.v3.Pages.UpdatePage]. 561message UpdatePageRequest { 562 // Required. The page to update. 563 Page page = 1 [(google.api.field_behavior) = REQUIRED]; 564 565 // The language of the following fields in `page`: 566 // 567 // * `Page.entry_fulfillment.messages` 568 // * `Page.entry_fulfillment.conditional_cases` 569 // * `Page.event_handlers.trigger_fulfillment.messages` 570 // * `Page.event_handlers.trigger_fulfillment.conditional_cases` 571 // * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` 572 // * 573 // `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` 574 // * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` 575 // * 576 // `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` 577 // * `Page.transition_routes.trigger_fulfillment.messages` 578 // * `Page.transition_routes.trigger_fulfillment.conditional_cases` 579 // 580 // If not specified, the agent's default language is used. 581 // [Many 582 // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) 583 // are supported. 584 // Note: languages must be enabled in the agent before they can be used. 585 string language_code = 2; 586 587 // The mask to control which fields get updated. If the mask is not present, 588 // all fields will be updated. 589 google.protobuf.FieldMask update_mask = 3; 590} 591 592// The request message for 593// [Pages.DeletePage][google.cloud.dialogflow.cx.v3.Pages.DeletePage]. 594message DeletePageRequest { 595 // Required. The name of the page to delete. 596 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 597 // ID>/Flows/<flow ID>/pages/<Page ID>`. 598 string name = 1 [ 599 (google.api.field_behavior) = REQUIRED, 600 (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Page" } 601 ]; 602 603 // This field has no effect for pages with no incoming transitions. 604 // For pages with incoming transitions: 605 // 606 // * If `force` is set to false, an error will be returned with message 607 // indicating the incoming transitions. 608 // * If `force` is set to true, Dialogflow will remove the page, as well as 609 // any transitions to the page (i.e. [Target 610 // page][EventHandler.target_page] in event handlers or [Target 611 // page][TransitionRoute.target_page] in transition routes that point to 612 // this page will be cleared). 613 bool force = 2; 614} 615 616// The Knowledge Connector settings for this page or flow. 617// This includes information such as the attached Knowledge Bases, and the way 618// to execute fulfillment. 619message KnowledgeConnectorSettings { 620 // Whether Knowledge Connector is enabled or not. 621 bool enabled = 1; 622 623 // The fulfillment to be triggered. 624 // 625 // When the answers from the Knowledge Connector are selected by Dialogflow, 626 // you can utitlize the request scoped parameter `$request.knowledge.answers` 627 // (contains up to the 5 highest confidence answers) and 628 // `$request.knowledge.questions` (contains the corresponding questions) to 629 // construct the fulfillment. 630 Fulfillment trigger_fulfillment = 3; 631 632 // The target to transition to, either a page in the same host flow (the flow 633 // that owns this 634 // [KnowledgeConnectorSettings][google.cloud.dialogflow.cx.v3.KnowledgeConnectorSettings]), 635 // or another flow in the same agent. 636 oneof target { 637 // The target page to transition to. 638 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 639 // ID>/flows/<Flow ID>/pages/<Page ID>`. 640 string target_page = 4 [(google.api.resource_reference) = { 641 type: "dialogflow.googleapis.com/Page" 642 }]; 643 644 // The target flow to transition to. 645 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 646 // ID>/flows/<Flow ID>`. 647 string target_flow = 5 [(google.api.resource_reference) = { 648 type: "dialogflow.googleapis.com/Flow" 649 }]; 650 } 651 652 // Optional. List of related data store connections. 653 repeated DataStoreConnection data_store_connections = 6 654 [(google.api.field_behavior) = OPTIONAL]; 655} 656