xref: /aosp_15_r20/external/googleapis/google/cloud/dialogflow/cx/v3/page.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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