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