xref: /aosp_15_r20/external/googleapis/google/cloud/dialogflow/v2beta1/webhook.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.dialogflow.v2beta1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2beta1/context.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2beta1/intent.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2beta1/session.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2beta1/session_entity_type.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto";
24*d5c09012SAndroid Build Coastguard Worker
25*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
26*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Dialogflow.V2Beta1";
27*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dialogflow/apiv2beta1/dialogflowpb;dialogflowpb";
28*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
29*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "WebhookProto";
30*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dialogflow.v2beta1";
31*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "DF";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Worker// The request message for a webhook call.
34*d5c09012SAndroid Build Coastguard Workermessage WebhookRequest {
35*d5c09012SAndroid Build Coastguard Worker  // The unique identifier of detectIntent request session.
36*d5c09012SAndroid Build Coastguard Worker  // Can be used to identify end-user inside webhook implementation.
37*d5c09012SAndroid Build Coastguard Worker  // Supported formats:
38*d5c09012SAndroid Build Coastguard Worker  // - `projects/<Project ID>/agent/sessions/<Session ID>,
39*d5c09012SAndroid Build Coastguard Worker  // - `projects/<Project ID>/locations/<Location ID>/agent/sessions/<Session
40*d5c09012SAndroid Build Coastguard Worker  //   ID>`,
41*d5c09012SAndroid Build Coastguard Worker  // - `projects/<Project ID>/agent/environments/<Environment ID>/users/<User
42*d5c09012SAndroid Build Coastguard Worker  //   ID>/sessions/<Session ID>`,
43*d5c09012SAndroid Build Coastguard Worker  // - `projects/<Project ID>/locations/<Location
44*d5c09012SAndroid Build Coastguard Worker  //   ID>/agent/environments/<Environment ID>/users/<User ID>/sessions/<Session
45*d5c09012SAndroid Build Coastguard Worker  //   ID>`,
46*d5c09012SAndroid Build Coastguard Worker  string session = 4;
47*d5c09012SAndroid Build Coastguard Worker
48*d5c09012SAndroid Build Coastguard Worker  // The unique identifier of the response. Contains the same value as
49*d5c09012SAndroid Build Coastguard Worker  // `[Streaming]DetectIntentResponse.response_id`.
50*d5c09012SAndroid Build Coastguard Worker  string response_id = 1;
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard Worker  // The result of the conversational query or event processing. Contains the
53*d5c09012SAndroid Build Coastguard Worker  // same value as `[Streaming]DetectIntentResponse.query_result`.
54*d5c09012SAndroid Build Coastguard Worker  QueryResult query_result = 2;
55*d5c09012SAndroid Build Coastguard Worker
56*d5c09012SAndroid Build Coastguard Worker  // Alternative query results from KnowledgeService.
57*d5c09012SAndroid Build Coastguard Worker  repeated QueryResult alternative_query_results = 5;
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker  // Optional. The contents of the original request that was passed to
60*d5c09012SAndroid Build Coastguard Worker  // `[Streaming]DetectIntent` call.
61*d5c09012SAndroid Build Coastguard Worker  OriginalDetectIntentRequest original_detect_intent_request = 3;
62*d5c09012SAndroid Build Coastguard Worker}
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker// The response message for a webhook call.
65*d5c09012SAndroid Build Coastguard Worker//
66*d5c09012SAndroid Build Coastguard Worker// This response is validated by the Dialogflow server. If validation fails,
67*d5c09012SAndroid Build Coastguard Worker// an error will be returned in the
68*d5c09012SAndroid Build Coastguard Worker// [QueryResult.diagnostic_info][google.cloud.dialogflow.v2beta1.QueryResult.diagnostic_info]
69*d5c09012SAndroid Build Coastguard Worker// field. Setting JSON fields to an empty value with the wrong type is a common
70*d5c09012SAndroid Build Coastguard Worker// error. To avoid this error:
71*d5c09012SAndroid Build Coastguard Worker//
72*d5c09012SAndroid Build Coastguard Worker// - Use `""` for empty strings
73*d5c09012SAndroid Build Coastguard Worker// - Use `{}` or `null` for empty objects
74*d5c09012SAndroid Build Coastguard Worker// - Use `[]` or `null` for empty arrays
75*d5c09012SAndroid Build Coastguard Worker//
76*d5c09012SAndroid Build Coastguard Worker// For more information, see the
77*d5c09012SAndroid Build Coastguard Worker// [Protocol Buffers Language
78*d5c09012SAndroid Build Coastguard Worker// Guide](https://developers.google.com/protocol-buffers/docs/proto3#json).
79*d5c09012SAndroid Build Coastguard Workermessage WebhookResponse {
80*d5c09012SAndroid Build Coastguard Worker  // Optional. The text response message intended for the end-user.
81*d5c09012SAndroid Build Coastguard Worker  // It is recommended to use `fulfillment_messages.text.text[0]` instead.
82*d5c09012SAndroid Build Coastguard Worker  // When provided, Dialogflow uses this field to populate
83*d5c09012SAndroid Build Coastguard Worker  // [QueryResult.fulfillment_text][google.cloud.dialogflow.v2beta1.QueryResult.fulfillment_text]
84*d5c09012SAndroid Build Coastguard Worker  // sent to the integration or API caller.
85*d5c09012SAndroid Build Coastguard Worker  string fulfillment_text = 1;
86*d5c09012SAndroid Build Coastguard Worker
87*d5c09012SAndroid Build Coastguard Worker  // Optional. The rich response messages intended for the end-user.
88*d5c09012SAndroid Build Coastguard Worker  // When provided, Dialogflow uses this field to populate
89*d5c09012SAndroid Build Coastguard Worker  // [QueryResult.fulfillment_messages][google.cloud.dialogflow.v2beta1.QueryResult.fulfillment_messages]
90*d5c09012SAndroid Build Coastguard Worker  // sent to the integration or API caller.
91*d5c09012SAndroid Build Coastguard Worker  repeated Intent.Message fulfillment_messages = 2;
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker  // Optional. A custom field used to identify the webhook source.
94*d5c09012SAndroid Build Coastguard Worker  // Arbitrary strings are supported.
95*d5c09012SAndroid Build Coastguard Worker  // When provided, Dialogflow uses this field to populate
96*d5c09012SAndroid Build Coastguard Worker  // [QueryResult.webhook_source][google.cloud.dialogflow.v2beta1.QueryResult.webhook_source]
97*d5c09012SAndroid Build Coastguard Worker  // sent to the integration or API caller.
98*d5c09012SAndroid Build Coastguard Worker  string source = 3;
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // Optional. This field can be used to pass custom data from your webhook to
101*d5c09012SAndroid Build Coastguard Worker  // the integration or API caller. Arbitrary JSON objects are supported. When
102*d5c09012SAndroid Build Coastguard Worker  // provided, Dialogflow uses this field to populate
103*d5c09012SAndroid Build Coastguard Worker  // [QueryResult.webhook_payload][google.cloud.dialogflow.v2beta1.QueryResult.webhook_payload]
104*d5c09012SAndroid Build Coastguard Worker  // sent to the integration or API caller. This field is also used by the
105*d5c09012SAndroid Build Coastguard Worker  // [Google Assistant
106*d5c09012SAndroid Build Coastguard Worker  // integration](https://cloud.google.com/dialogflow/docs/integrations/aog)
107*d5c09012SAndroid Build Coastguard Worker  // for rich response messages.
108*d5c09012SAndroid Build Coastguard Worker  // See the format definition at [Google Assistant Dialogflow webhook
109*d5c09012SAndroid Build Coastguard Worker  // format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)
110*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Struct payload = 4;
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker  // Optional. The collection of output contexts that will overwrite currently
113*d5c09012SAndroid Build Coastguard Worker  // active contexts for the session and reset their lifespans.
114*d5c09012SAndroid Build Coastguard Worker  // When provided, Dialogflow uses this field to populate
115*d5c09012SAndroid Build Coastguard Worker  // [QueryResult.output_contexts][google.cloud.dialogflow.v2beta1.QueryResult.output_contexts]
116*d5c09012SAndroid Build Coastguard Worker  // sent to the integration or API caller.
117*d5c09012SAndroid Build Coastguard Worker  repeated Context output_contexts = 5;
118*d5c09012SAndroid Build Coastguard Worker
119*d5c09012SAndroid Build Coastguard Worker  // Optional. Invokes the supplied events.
120*d5c09012SAndroid Build Coastguard Worker  // When this field is set, Dialogflow ignores the `fulfillment_text`,
121*d5c09012SAndroid Build Coastguard Worker  // `fulfillment_messages`, and `payload` fields.
122*d5c09012SAndroid Build Coastguard Worker  EventInput followup_event_input = 6;
123*d5c09012SAndroid Build Coastguard Worker
124*d5c09012SAndroid Build Coastguard Worker  // Indicates that a live agent should be brought in to handle the
125*d5c09012SAndroid Build Coastguard Worker  // interaction with the user. In most cases, when you set this flag to true,
126*d5c09012SAndroid Build Coastguard Worker  // you would also want to set end_interaction to true as well. Default is
127*d5c09012SAndroid Build Coastguard Worker  // false.
128*d5c09012SAndroid Build Coastguard Worker  bool live_agent_handoff = 7;
129*d5c09012SAndroid Build Coastguard Worker
130*d5c09012SAndroid Build Coastguard Worker  // Optional. Indicates that this intent ends an interaction. Some integrations
131*d5c09012SAndroid Build Coastguard Worker  // (e.g., Actions on Google or Dialogflow phone gateway) use this information
132*d5c09012SAndroid Build Coastguard Worker  // to close interaction with an end user. Default is false.
133*d5c09012SAndroid Build Coastguard Worker  bool end_interaction = 8;
134*d5c09012SAndroid Build Coastguard Worker
135*d5c09012SAndroid Build Coastguard Worker  // Optional. Additional session entity types to replace or extend developer
136*d5c09012SAndroid Build Coastguard Worker  // entity types with. The entity synonyms apply to all languages and persist
137*d5c09012SAndroid Build Coastguard Worker  // for the session. Setting this data from a webhook overwrites
138*d5c09012SAndroid Build Coastguard Worker  // the session entity types that have been set using `detectIntent`,
139*d5c09012SAndroid Build Coastguard Worker  // `streamingDetectIntent` or
140*d5c09012SAndroid Build Coastguard Worker  // [SessionEntityType][google.cloud.dialogflow.v2beta1.SessionEntityType]
141*d5c09012SAndroid Build Coastguard Worker  // management methods.
142*d5c09012SAndroid Build Coastguard Worker  repeated SessionEntityType session_entity_types = 10;
143*d5c09012SAndroid Build Coastguard Worker}
144*d5c09012SAndroid Build Coastguard Worker
145*d5c09012SAndroid Build Coastguard Worker// Represents the contents of the original request that was passed to
146*d5c09012SAndroid Build Coastguard Worker// the `[Streaming]DetectIntent` call.
147*d5c09012SAndroid Build Coastguard Workermessage OriginalDetectIntentRequest {
148*d5c09012SAndroid Build Coastguard Worker  // The source of this request, e.g., `google`, `facebook`, `slack`. It is set
149*d5c09012SAndroid Build Coastguard Worker  // by Dialogflow-owned servers.
150*d5c09012SAndroid Build Coastguard Worker  string source = 1;
151*d5c09012SAndroid Build Coastguard Worker
152*d5c09012SAndroid Build Coastguard Worker  // Optional. The version of the protocol used for this request.
153*d5c09012SAndroid Build Coastguard Worker  // This field is AoG-specific.
154*d5c09012SAndroid Build Coastguard Worker  string version = 2;
155*d5c09012SAndroid Build Coastguard Worker
156*d5c09012SAndroid Build Coastguard Worker  // Optional. This field is set to the value of the `QueryParameters.payload`
157*d5c09012SAndroid Build Coastguard Worker  // field passed in the request. Some integrations that query a Dialogflow
158*d5c09012SAndroid Build Coastguard Worker  // agent may provide additional information in the payload.
159*d5c09012SAndroid Build Coastguard Worker  //
160*d5c09012SAndroid Build Coastguard Worker  // In particular, for the Dialogflow Phone Gateway integration, this field has
161*d5c09012SAndroid Build Coastguard Worker  // the form:
162*d5c09012SAndroid Build Coastguard Worker  // <pre>{
163*d5c09012SAndroid Build Coastguard Worker  //  "telephony": {
164*d5c09012SAndroid Build Coastguard Worker  //    "caller_id": "+18558363987"
165*d5c09012SAndroid Build Coastguard Worker  //  }
166*d5c09012SAndroid Build Coastguard Worker  // }</pre>
167*d5c09012SAndroid Build Coastguard Worker  // Note: The caller ID field (`caller_id`) will be redacted for Trial
168*d5c09012SAndroid Build Coastguard Worker  // Edition agents and populated with the caller ID in [E.164
169*d5c09012SAndroid Build Coastguard Worker  // format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents.
170*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Struct payload = 3;
171*d5c09012SAndroid Build Coastguard Worker}
172