xref: /aosp_15_r20/external/googleapis/google/cloud/dialogflow/v2beta1/conversation.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/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2beta1/conversation_profile.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2beta1/participant.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dialogflow/v2beta1/session.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
27*d5c09012SAndroid Build Coastguard Worker
28*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
29*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Dialogflow.V2Beta1";
30*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dialogflow/apiv2beta1/dialogflowpb;dialogflowpb";
31*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
32*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ConversationProto";
33*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dialogflow.v2beta1";
34*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "DF";
35*d5c09012SAndroid Build Coastguard Worker
36*d5c09012SAndroid Build Coastguard Worker// Service for managing
37*d5c09012SAndroid Build Coastguard Worker// [Conversations][google.cloud.dialogflow.v2beta1.Conversation].
38*d5c09012SAndroid Build Coastguard Workerservice Conversations {
39*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "dialogflow.googleapis.com";
40*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
41*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
42*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/dialogflow";
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker  // Creates a new conversation. Conversations are auto-completed after 24
45*d5c09012SAndroid Build Coastguard Worker  // hours.
46*d5c09012SAndroid Build Coastguard Worker  //
47*d5c09012SAndroid Build Coastguard Worker  // Conversation Lifecycle:
48*d5c09012SAndroid Build Coastguard Worker  // There are two stages during a conversation: Automated Agent Stage and
49*d5c09012SAndroid Build Coastguard Worker  // Assist Stage.
50*d5c09012SAndroid Build Coastguard Worker  //
51*d5c09012SAndroid Build Coastguard Worker  // For Automated Agent Stage, there will be a dialogflow agent responding to
52*d5c09012SAndroid Build Coastguard Worker  // user queries.
53*d5c09012SAndroid Build Coastguard Worker  //
54*d5c09012SAndroid Build Coastguard Worker  // For Assist Stage, there's no dialogflow agent responding to user queries.
55*d5c09012SAndroid Build Coastguard Worker  // But we will provide suggestions which are generated from conversation.
56*d5c09012SAndroid Build Coastguard Worker  //
57*d5c09012SAndroid Build Coastguard Worker  // If
58*d5c09012SAndroid Build Coastguard Worker  // [Conversation.conversation_profile][google.cloud.dialogflow.v2beta1.Conversation.conversation_profile]
59*d5c09012SAndroid Build Coastguard Worker  // is configured for a dialogflow agent, conversation will start from
60*d5c09012SAndroid Build Coastguard Worker  // `Automated Agent Stage`, otherwise, it will start from `Assist Stage`. And
61*d5c09012SAndroid Build Coastguard Worker  // during `Automated Agent Stage`, once an
62*d5c09012SAndroid Build Coastguard Worker  // [Intent][google.cloud.dialogflow.v2beta1.Intent] with
63*d5c09012SAndroid Build Coastguard Worker  // [Intent.live_agent_handoff][google.cloud.dialogflow.v2beta1.Intent.live_agent_handoff]
64*d5c09012SAndroid Build Coastguard Worker  // is triggered, conversation will transfer to Assist Stage.
65*d5c09012SAndroid Build Coastguard Worker  rpc CreateConversation(CreateConversationRequest) returns (Conversation) {
66*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
67*d5c09012SAndroid Build Coastguard Worker      post: "/v2beta1/{parent=projects/*}/conversations"
68*d5c09012SAndroid Build Coastguard Worker      body: "conversation"
69*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
70*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{parent=projects/*/locations/*}/conversations"
71*d5c09012SAndroid Build Coastguard Worker        body: "conversation"
72*d5c09012SAndroid Build Coastguard Worker      }
73*d5c09012SAndroid Build Coastguard Worker    };
74*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,conversation";
75*d5c09012SAndroid Build Coastguard Worker  }
76*d5c09012SAndroid Build Coastguard Worker
77*d5c09012SAndroid Build Coastguard Worker  // Returns the list of all conversations in the specified project.
78*d5c09012SAndroid Build Coastguard Worker  rpc ListConversations(ListConversationsRequest)
79*d5c09012SAndroid Build Coastguard Worker      returns (ListConversationsResponse) {
80*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
81*d5c09012SAndroid Build Coastguard Worker      get: "/v2beta1/{parent=projects/*}/conversations"
82*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
83*d5c09012SAndroid Build Coastguard Worker        get: "/v2beta1/{parent=projects/*/locations/*}/conversations"
84*d5c09012SAndroid Build Coastguard Worker      }
85*d5c09012SAndroid Build Coastguard Worker    };
86*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
87*d5c09012SAndroid Build Coastguard Worker  }
88*d5c09012SAndroid Build Coastguard Worker
89*d5c09012SAndroid Build Coastguard Worker  // Retrieves the specific conversation.
90*d5c09012SAndroid Build Coastguard Worker  rpc GetConversation(GetConversationRequest) returns (Conversation) {
91*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
92*d5c09012SAndroid Build Coastguard Worker      get: "/v2beta1/{name=projects/*/conversations/*}"
93*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
94*d5c09012SAndroid Build Coastguard Worker        get: "/v2beta1/{name=projects/*/locations/*/conversations/*}"
95*d5c09012SAndroid Build Coastguard Worker      }
96*d5c09012SAndroid Build Coastguard Worker    };
97*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
98*d5c09012SAndroid Build Coastguard Worker  }
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // Completes the specified conversation. Finished conversations are purged
101*d5c09012SAndroid Build Coastguard Worker  // from the database after 30 days.
102*d5c09012SAndroid Build Coastguard Worker  rpc CompleteConversation(CompleteConversationRequest) returns (Conversation) {
103*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
104*d5c09012SAndroid Build Coastguard Worker      post: "/v2beta1/{name=projects/*/conversations/*}:complete"
105*d5c09012SAndroid Build Coastguard Worker      body: "*"
106*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
107*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{name=projects/*/locations/*/conversations/*}:complete"
108*d5c09012SAndroid Build Coastguard Worker        body: "*"
109*d5c09012SAndroid Build Coastguard Worker      }
110*d5c09012SAndroid Build Coastguard Worker    };
111*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
112*d5c09012SAndroid Build Coastguard Worker  }
113*d5c09012SAndroid Build Coastguard Worker
114*d5c09012SAndroid Build Coastguard Worker  // Batch ingests messages to conversation. Customers can use this RPC to
115*d5c09012SAndroid Build Coastguard Worker  // ingest historical messages to conversation.
116*d5c09012SAndroid Build Coastguard Worker  rpc BatchCreateMessages(BatchCreateMessagesRequest)
117*d5c09012SAndroid Build Coastguard Worker      returns (BatchCreateMessagesResponse) {
118*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
119*d5c09012SAndroid Build Coastguard Worker      post: "/v2beta1/{parent=projects/*/conversations/*}/messages:batchCreate"
120*d5c09012SAndroid Build Coastguard Worker      body: "*"
121*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
122*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages:batchCreate"
123*d5c09012SAndroid Build Coastguard Worker        body: "*"
124*d5c09012SAndroid Build Coastguard Worker      }
125*d5c09012SAndroid Build Coastguard Worker    };
126*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
127*d5c09012SAndroid Build Coastguard Worker  }
128*d5c09012SAndroid Build Coastguard Worker
129*d5c09012SAndroid Build Coastguard Worker  // Lists messages that belong to a given conversation.
130*d5c09012SAndroid Build Coastguard Worker  // `messages` are ordered by `create_time` in descending order. To fetch
131*d5c09012SAndroid Build Coastguard Worker  // updates without duplication, send request with filter
132*d5c09012SAndroid Build Coastguard Worker  // `create_time_epoch_microseconds >
133*d5c09012SAndroid Build Coastguard Worker  // [first item's create_time of previous request]` and empty page_token.
134*d5c09012SAndroid Build Coastguard Worker  rpc ListMessages(ListMessagesRequest) returns (ListMessagesResponse) {
135*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
136*d5c09012SAndroid Build Coastguard Worker      get: "/v2beta1/{parent=projects/*/conversations/*}/messages"
137*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
138*d5c09012SAndroid Build Coastguard Worker        get: "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages"
139*d5c09012SAndroid Build Coastguard Worker      }
140*d5c09012SAndroid Build Coastguard Worker    };
141*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
142*d5c09012SAndroid Build Coastguard Worker  }
143*d5c09012SAndroid Build Coastguard Worker
144*d5c09012SAndroid Build Coastguard Worker  // Suggest summary for a conversation based on specific historical messages.
145*d5c09012SAndroid Build Coastguard Worker  // The range of the messages to be used for summary can be specified in the
146*d5c09012SAndroid Build Coastguard Worker  // request.
147*d5c09012SAndroid Build Coastguard Worker  rpc SuggestConversationSummary(SuggestConversationSummaryRequest)
148*d5c09012SAndroid Build Coastguard Worker      returns (SuggestConversationSummaryResponse) {
149*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
150*d5c09012SAndroid Build Coastguard Worker      post: "/v2beta1/{conversation=projects/*/conversations/*}/suggestions:suggestConversationSummary"
151*d5c09012SAndroid Build Coastguard Worker      body: "*"
152*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
153*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{conversation=projects/*/locations/*/conversations/*}/suggestions:suggestConversationSummary"
154*d5c09012SAndroid Build Coastguard Worker        body: "*"
155*d5c09012SAndroid Build Coastguard Worker      }
156*d5c09012SAndroid Build Coastguard Worker    };
157*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "conversation";
158*d5c09012SAndroid Build Coastguard Worker  }
159*d5c09012SAndroid Build Coastguard Worker
160*d5c09012SAndroid Build Coastguard Worker  // Generates and returns a summary for a conversation that does not have a
161*d5c09012SAndroid Build Coastguard Worker  // resource created for it.
162*d5c09012SAndroid Build Coastguard Worker  rpc GenerateStatelessSummary(GenerateStatelessSummaryRequest)
163*d5c09012SAndroid Build Coastguard Worker      returns (GenerateStatelessSummaryResponse) {
164*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
165*d5c09012SAndroid Build Coastguard Worker      post: "/v2beta1/{stateless_conversation.parent=projects/*}/suggestions:generateStatelessSummary"
166*d5c09012SAndroid Build Coastguard Worker      body: "*"
167*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
168*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{stateless_conversation.parent=projects/*/locations/*}/suggestions:generateStatelessSummary"
169*d5c09012SAndroid Build Coastguard Worker        body: "*"
170*d5c09012SAndroid Build Coastguard Worker      }
171*d5c09012SAndroid Build Coastguard Worker    };
172*d5c09012SAndroid Build Coastguard Worker  }
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker  // Get answers for the given query based on knowledge documents.
175*d5c09012SAndroid Build Coastguard Worker  rpc SearchKnowledge(SearchKnowledgeRequest)
176*d5c09012SAndroid Build Coastguard Worker      returns (SearchKnowledgeResponse) {
177*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
178*d5c09012SAndroid Build Coastguard Worker      post: "/v2beta1/{parent=projects/*}/suggestions:searchKnowledge"
179*d5c09012SAndroid Build Coastguard Worker      body: "*"
180*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
181*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{parent=projects/*/locations/*}/suggestions:searchKnowledge"
182*d5c09012SAndroid Build Coastguard Worker        body: "*"
183*d5c09012SAndroid Build Coastguard Worker      }
184*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
185*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{conversation=projects/*/conversations/*}/suggestions:searchKnowledge"
186*d5c09012SAndroid Build Coastguard Worker        body: "*"
187*d5c09012SAndroid Build Coastguard Worker      }
188*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
189*d5c09012SAndroid Build Coastguard Worker        post: "/v2beta1/{conversation=projects/*/locations/*/conversations/*}/suggestions:searchKnowledge"
190*d5c09012SAndroid Build Coastguard Worker        body: "*"
191*d5c09012SAndroid Build Coastguard Worker      }
192*d5c09012SAndroid Build Coastguard Worker    };
193*d5c09012SAndroid Build Coastguard Worker  }
194*d5c09012SAndroid Build Coastguard Worker}
195*d5c09012SAndroid Build Coastguard Worker
196*d5c09012SAndroid Build Coastguard Worker// Represents a conversation.
197*d5c09012SAndroid Build Coastguard Worker// A conversation is an interaction between an agent, including live agents
198*d5c09012SAndroid Build Coastguard Worker// and Dialogflow agents, and a support customer. Conversations can
199*d5c09012SAndroid Build Coastguard Worker// include phone calls and text-based chat sessions.
200*d5c09012SAndroid Build Coastguard Workermessage Conversation {
201*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
202*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Conversation"
203*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/conversations/{conversation}"
204*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/conversations/{conversation}"
205*d5c09012SAndroid Build Coastguard Worker  };
206*d5c09012SAndroid Build Coastguard Worker
207*d5c09012SAndroid Build Coastguard Worker  // Enumeration of the completion status of the conversation.
208*d5c09012SAndroid Build Coastguard Worker  enum LifecycleState {
209*d5c09012SAndroid Build Coastguard Worker    // Unknown.
210*d5c09012SAndroid Build Coastguard Worker    LIFECYCLE_STATE_UNSPECIFIED = 0;
211*d5c09012SAndroid Build Coastguard Worker
212*d5c09012SAndroid Build Coastguard Worker    // Conversation is currently open for media analysis.
213*d5c09012SAndroid Build Coastguard Worker    IN_PROGRESS = 1;
214*d5c09012SAndroid Build Coastguard Worker
215*d5c09012SAndroid Build Coastguard Worker    // Conversation has been completed.
216*d5c09012SAndroid Build Coastguard Worker    COMPLETED = 2;
217*d5c09012SAndroid Build Coastguard Worker  }
218*d5c09012SAndroid Build Coastguard Worker
219*d5c09012SAndroid Build Coastguard Worker  // Enumeration of the different conversation stages a conversation can be in.
220*d5c09012SAndroid Build Coastguard Worker  // Reference:
221*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages
222*d5c09012SAndroid Build Coastguard Worker  enum ConversationStage {
223*d5c09012SAndroid Build Coastguard Worker    // Unknown. Should never be used after a conversation is successfully
224*d5c09012SAndroid Build Coastguard Worker    // created.
225*d5c09012SAndroid Build Coastguard Worker    CONVERSATION_STAGE_UNSPECIFIED = 0;
226*d5c09012SAndroid Build Coastguard Worker
227*d5c09012SAndroid Build Coastguard Worker    // The conversation should return virtual agent responses into the
228*d5c09012SAndroid Build Coastguard Worker    // conversation.
229*d5c09012SAndroid Build Coastguard Worker    VIRTUAL_AGENT_STAGE = 1;
230*d5c09012SAndroid Build Coastguard Worker
231*d5c09012SAndroid Build Coastguard Worker    // The conversation should not provide responses, just listen and provide
232*d5c09012SAndroid Build Coastguard Worker    // suggestions.
233*d5c09012SAndroid Build Coastguard Worker    HUMAN_ASSIST_STAGE = 2;
234*d5c09012SAndroid Build Coastguard Worker  }
235*d5c09012SAndroid Build Coastguard Worker
236*d5c09012SAndroid Build Coastguard Worker  // Output only. The unique identifier of this conversation.
237*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
238*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>`.
239*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
240*d5c09012SAndroid Build Coastguard Worker
241*d5c09012SAndroid Build Coastguard Worker  // Output only. The current state of the Conversation.
242*d5c09012SAndroid Build Coastguard Worker  LifecycleState lifecycle_state = 2
243*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
244*d5c09012SAndroid Build Coastguard Worker
245*d5c09012SAndroid Build Coastguard Worker  // Required. The Conversation Profile to be used to configure this
246*d5c09012SAndroid Build Coastguard Worker  // Conversation. This field cannot be updated.
247*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
248*d5c09012SAndroid Build Coastguard Worker  // ID>/conversationProfiles/<Conversation Profile ID>`.
249*d5c09012SAndroid Build Coastguard Worker  string conversation_profile = 3 [
250*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
251*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
252*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/ConversationProfile"
253*d5c09012SAndroid Build Coastguard Worker    }
254*d5c09012SAndroid Build Coastguard Worker  ];
255*d5c09012SAndroid Build Coastguard Worker
256*d5c09012SAndroid Build Coastguard Worker  // Output only. Required if the conversation is to be connected over
257*d5c09012SAndroid Build Coastguard Worker  // telephony.
258*d5c09012SAndroid Build Coastguard Worker  ConversationPhoneNumber phone_number = 4
259*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker  // The stage of a conversation. It indicates whether the virtual agent or a
262*d5c09012SAndroid Build Coastguard Worker  // human agent is handling the conversation.
263*d5c09012SAndroid Build Coastguard Worker  //
264*d5c09012SAndroid Build Coastguard Worker  // If the conversation is created with the conversation profile that has
265*d5c09012SAndroid Build Coastguard Worker  // Dialogflow config set, defaults to
266*d5c09012SAndroid Build Coastguard Worker  // [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE];
267*d5c09012SAndroid Build Coastguard Worker  // Otherwise, defaults to
268*d5c09012SAndroid Build Coastguard Worker  // [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.HUMAN_ASSIST_STAGE].
269*d5c09012SAndroid Build Coastguard Worker  //
270*d5c09012SAndroid Build Coastguard Worker  // If the conversation is created with the conversation profile that has
271*d5c09012SAndroid Build Coastguard Worker  // Dialogflow config set but explicitly sets conversation_stage to
272*d5c09012SAndroid Build Coastguard Worker  // [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.HUMAN_ASSIST_STAGE],
273*d5c09012SAndroid Build Coastguard Worker  // it skips
274*d5c09012SAndroid Build Coastguard Worker  // [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE]
275*d5c09012SAndroid Build Coastguard Worker  // stage and directly goes to
276*d5c09012SAndroid Build Coastguard Worker  // [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.HUMAN_ASSIST_STAGE].
277*d5c09012SAndroid Build Coastguard Worker  ConversationStage conversation_stage = 7;
278*d5c09012SAndroid Build Coastguard Worker
279*d5c09012SAndroid Build Coastguard Worker  // Output only. The time the conversation was started.
280*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 5
281*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
282*d5c09012SAndroid Build Coastguard Worker
283*d5c09012SAndroid Build Coastguard Worker  // Output only. The time the conversation was finished.
284*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp end_time = 6
285*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
286*d5c09012SAndroid Build Coastguard Worker}
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker// Represents a phone number for telephony integration. It allows for connecting
289*d5c09012SAndroid Build Coastguard Worker// a particular conversation over telephony.
290*d5c09012SAndroid Build Coastguard Workermessage ConversationPhoneNumber {
291*d5c09012SAndroid Build Coastguard Worker  // Output only. The phone number to connect to this conversation.
292*d5c09012SAndroid Build Coastguard Worker  string phone_number = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
293*d5c09012SAndroid Build Coastguard Worker}
294*d5c09012SAndroid Build Coastguard Worker
295*d5c09012SAndroid Build Coastguard Worker// The request message for
296*d5c09012SAndroid Build Coastguard Worker// [Conversations.CreateConversation][google.cloud.dialogflow.v2beta1.Conversations.CreateConversation].
297*d5c09012SAndroid Build Coastguard Workermessage CreateConversationRequest {
298*d5c09012SAndroid Build Coastguard Worker  // Required. Resource identifier of the project creating the conversation.
299*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location ID>`.
300*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
301*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
302*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
303*d5c09012SAndroid Build Coastguard Worker      child_type: "dialogflow.googleapis.com/Conversation"
304*d5c09012SAndroid Build Coastguard Worker    }
305*d5c09012SAndroid Build Coastguard Worker  ];
306*d5c09012SAndroid Build Coastguard Worker
307*d5c09012SAndroid Build Coastguard Worker  // Required. The conversation to create.
308*d5c09012SAndroid Build Coastguard Worker  Conversation conversation = 2 [(google.api.field_behavior) = REQUIRED];
309*d5c09012SAndroid Build Coastguard Worker
310*d5c09012SAndroid Build Coastguard Worker  // Optional. Identifier of the conversation. Generally it's auto generated by
311*d5c09012SAndroid Build Coastguard Worker  // Google. Only set it if you cannot wait for the response to return a
312*d5c09012SAndroid Build Coastguard Worker  // auto-generated one to you.
313*d5c09012SAndroid Build Coastguard Worker  //
314*d5c09012SAndroid Build Coastguard Worker  // The conversation ID must be compliant with the regression fomula
315*d5c09012SAndroid Build Coastguard Worker  // `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64].
316*d5c09012SAndroid Build Coastguard Worker  // If the field is provided, the caller is resposible for
317*d5c09012SAndroid Build Coastguard Worker  // 1. the uniqueness of the ID, otherwise the request will be rejected.
318*d5c09012SAndroid Build Coastguard Worker  // 2. the consistency for whether to use custom ID or not under a project to
319*d5c09012SAndroid Build Coastguard Worker  // better ensure uniqueness.
320*d5c09012SAndroid Build Coastguard Worker  string conversation_id = 3 [(google.api.field_behavior) = OPTIONAL];
321*d5c09012SAndroid Build Coastguard Worker}
322*d5c09012SAndroid Build Coastguard Worker
323*d5c09012SAndroid Build Coastguard Worker// The request message for
324*d5c09012SAndroid Build Coastguard Worker// [Conversations.ListConversations][google.cloud.dialogflow.v2beta1.Conversations.ListConversations].
325*d5c09012SAndroid Build Coastguard Workermessage ListConversationsRequest {
326*d5c09012SAndroid Build Coastguard Worker  // Required. The project from which to list all conversation.
327*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location ID>`.
328*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
329*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
330*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
331*d5c09012SAndroid Build Coastguard Worker      child_type: "dialogflow.googleapis.com/Conversation"
332*d5c09012SAndroid Build Coastguard Worker    }
333*d5c09012SAndroid Build Coastguard Worker  ];
334*d5c09012SAndroid Build Coastguard Worker
335*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of items to return in a single page. By
336*d5c09012SAndroid Build Coastguard Worker  // default 100 and at most 1000.
337*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
338*d5c09012SAndroid Build Coastguard Worker
339*d5c09012SAndroid Build Coastguard Worker  // Optional. The next_page_token value returned from a previous list request.
340*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
341*d5c09012SAndroid Build Coastguard Worker
342*d5c09012SAndroid Build Coastguard Worker  // A filter expression that filters conversations listed in the response. In
343*d5c09012SAndroid Build Coastguard Worker  // general, the expression must specify the field name, a comparison operator,
344*d5c09012SAndroid Build Coastguard Worker  // and the value to use for filtering:
345*d5c09012SAndroid Build Coastguard Worker  // <ul>
346*d5c09012SAndroid Build Coastguard Worker  //   <li>The value must be a string, a number, or a boolean.</li>
347*d5c09012SAndroid Build Coastguard Worker  //   <li>The comparison operator must be either `=`,`!=`, `>`, or `<`.</li>
348*d5c09012SAndroid Build Coastguard Worker  //   <li>To filter on multiple expressions, separate the
349*d5c09012SAndroid Build Coastguard Worker  //       expressions with `AND` or `OR` (omitting both implies `AND`).</li>
350*d5c09012SAndroid Build Coastguard Worker  //   <li>For clarity, expressions can be enclosed in parentheses.</li>
351*d5c09012SAndroid Build Coastguard Worker  // </ul>
352*d5c09012SAndroid Build Coastguard Worker  // Only `lifecycle_state` can be filtered on in this way. For example,
353*d5c09012SAndroid Build Coastguard Worker  // the following expression only returns `COMPLETED` conversations:
354*d5c09012SAndroid Build Coastguard Worker  //
355*d5c09012SAndroid Build Coastguard Worker  // `lifecycle_state = "COMPLETED"`
356*d5c09012SAndroid Build Coastguard Worker  //
357*d5c09012SAndroid Build Coastguard Worker  // For more information about filtering, see
358*d5c09012SAndroid Build Coastguard Worker  // [API Filtering](https://aip.dev/160).
359*d5c09012SAndroid Build Coastguard Worker  string filter = 4;
360*d5c09012SAndroid Build Coastguard Worker}
361*d5c09012SAndroid Build Coastguard Worker
362*d5c09012SAndroid Build Coastguard Worker// The response message for
363*d5c09012SAndroid Build Coastguard Worker// [Conversations.ListConversations][google.cloud.dialogflow.v2beta1.Conversations.ListConversations].
364*d5c09012SAndroid Build Coastguard Workermessage ListConversationsResponse {
365*d5c09012SAndroid Build Coastguard Worker  // The list of conversations. There will be a maximum number of items
366*d5c09012SAndroid Build Coastguard Worker  // returned based on the page_size field in the request.
367*d5c09012SAndroid Build Coastguard Worker  repeated Conversation conversations = 1;
368*d5c09012SAndroid Build Coastguard Worker
369*d5c09012SAndroid Build Coastguard Worker  // Token to retrieve the next page of results, or empty if there are no
370*d5c09012SAndroid Build Coastguard Worker  // more results in the list.
371*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
372*d5c09012SAndroid Build Coastguard Worker}
373*d5c09012SAndroid Build Coastguard Worker
374*d5c09012SAndroid Build Coastguard Worker// The request message for
375*d5c09012SAndroid Build Coastguard Worker// [Conversations.GetConversation][google.cloud.dialogflow.v2beta1.Conversations.GetConversation].
376*d5c09012SAndroid Build Coastguard Workermessage GetConversationRequest {
377*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the conversation. Format:
378*d5c09012SAndroid Build Coastguard Worker  // `projects/<Project ID>/locations/<Location ID>/conversations/<Conversation
379*d5c09012SAndroid Build Coastguard Worker  // ID>`.
380*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
381*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
382*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
383*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/Conversation"
384*d5c09012SAndroid Build Coastguard Worker    }
385*d5c09012SAndroid Build Coastguard Worker  ];
386*d5c09012SAndroid Build Coastguard Worker}
387*d5c09012SAndroid Build Coastguard Worker
388*d5c09012SAndroid Build Coastguard Worker// The request message for
389*d5c09012SAndroid Build Coastguard Worker// [Conversations.CompleteConversation][google.cloud.dialogflow.v2beta1.Conversations.CompleteConversation].
390*d5c09012SAndroid Build Coastguard Workermessage CompleteConversationRequest {
391*d5c09012SAndroid Build Coastguard Worker  // Required. Resource identifier of the conversation to close.
392*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
393*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>`.
394*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
395*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
396*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
397*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/Conversation"
398*d5c09012SAndroid Build Coastguard Worker    }
399*d5c09012SAndroid Build Coastguard Worker  ];
400*d5c09012SAndroid Build Coastguard Worker}
401*d5c09012SAndroid Build Coastguard Worker
402*d5c09012SAndroid Build Coastguard Worker// The request message to create one Message. Currently it is only used in
403*d5c09012SAndroid Build Coastguard Worker// BatchCreateMessagesRequest.
404*d5c09012SAndroid Build Coastguard Workermessage CreateMessageRequest {
405*d5c09012SAndroid Build Coastguard Worker  // Required. Resource identifier of the conversation to create message.
406*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
407*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>`.
408*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
409*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
410*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
411*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/Conversation"
412*d5c09012SAndroid Build Coastguard Worker    }
413*d5c09012SAndroid Build Coastguard Worker  ];
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker  // Required. The message to create.
416*d5c09012SAndroid Build Coastguard Worker  // [Message.participant][google.cloud.dialogflow.v2beta1.Message.participant]
417*d5c09012SAndroid Build Coastguard Worker  // is required.
418*d5c09012SAndroid Build Coastguard Worker  Message message = 2 [(google.api.field_behavior) = REQUIRED];
419*d5c09012SAndroid Build Coastguard Worker}
420*d5c09012SAndroid Build Coastguard Worker
421*d5c09012SAndroid Build Coastguard Worker// The request message for [Conversations.BatchCreateMessagesRequest][].
422*d5c09012SAndroid Build Coastguard Workermessage BatchCreateMessagesRequest {
423*d5c09012SAndroid Build Coastguard Worker  // Required. Resource identifier of the conversation to create message.
424*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
425*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>`.
426*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
427*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
428*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
429*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/Conversation"
430*d5c09012SAndroid Build Coastguard Worker    }
431*d5c09012SAndroid Build Coastguard Worker  ];
432*d5c09012SAndroid Build Coastguard Worker
433*d5c09012SAndroid Build Coastguard Worker  // Required. A maximum of 300 messages can be created in a batch.
434*d5c09012SAndroid Build Coastguard Worker  // [CreateMessageRequest.message.send_time][] is required. All created
435*d5c09012SAndroid Build Coastguard Worker  // messages will have identical
436*d5c09012SAndroid Build Coastguard Worker  // [Message.create_time][google.cloud.dialogflow.v2beta1.Message.create_time].
437*d5c09012SAndroid Build Coastguard Worker  repeated CreateMessageRequest requests = 2
438*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
439*d5c09012SAndroid Build Coastguard Worker}
440*d5c09012SAndroid Build Coastguard Worker
441*d5c09012SAndroid Build Coastguard Worker// The request message for [Conversations.BatchCreateMessagesResponse][].
442*d5c09012SAndroid Build Coastguard Workermessage BatchCreateMessagesResponse {
443*d5c09012SAndroid Build Coastguard Worker  // Messages created.
444*d5c09012SAndroid Build Coastguard Worker  repeated Message messages = 1;
445*d5c09012SAndroid Build Coastguard Worker}
446*d5c09012SAndroid Build Coastguard Worker
447*d5c09012SAndroid Build Coastguard Worker// The request message for
448*d5c09012SAndroid Build Coastguard Worker// [Conversations.ListMessages][google.cloud.dialogflow.v2beta1.Conversations.ListMessages].
449*d5c09012SAndroid Build Coastguard Workermessage ListMessagesRequest {
450*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the conversation to list messages for.
451*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
452*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>`
453*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
454*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
455*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
456*d5c09012SAndroid Build Coastguard Worker      child_type: "dialogflow.googleapis.com/Message"
457*d5c09012SAndroid Build Coastguard Worker    }
458*d5c09012SAndroid Build Coastguard Worker  ];
459*d5c09012SAndroid Build Coastguard Worker
460*d5c09012SAndroid Build Coastguard Worker  // Optional. Filter on message fields. Currently predicates on `create_time`
461*d5c09012SAndroid Build Coastguard Worker  // and `create_time_epoch_microseconds` are supported. `create_time` only
462*d5c09012SAndroid Build Coastguard Worker  // support milliseconds accuracy. E.g.,
463*d5c09012SAndroid Build Coastguard Worker  // `create_time_epoch_microseconds > 1551790877964485` or
464*d5c09012SAndroid Build Coastguard Worker  // `create_time > "2017-01-15T01:30:15.01Z"`.
465*d5c09012SAndroid Build Coastguard Worker  //
466*d5c09012SAndroid Build Coastguard Worker  // For more information about filtering, see
467*d5c09012SAndroid Build Coastguard Worker  // [API Filtering](https://aip.dev/160).
468*d5c09012SAndroid Build Coastguard Worker  string filter = 4;
469*d5c09012SAndroid Build Coastguard Worker
470*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of items to return in a single page. By
471*d5c09012SAndroid Build Coastguard Worker  // default 100 and at most 1000.
472*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
473*d5c09012SAndroid Build Coastguard Worker
474*d5c09012SAndroid Build Coastguard Worker  // Optional. The next_page_token value returned from a previous list request.
475*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
476*d5c09012SAndroid Build Coastguard Worker}
477*d5c09012SAndroid Build Coastguard Worker
478*d5c09012SAndroid Build Coastguard Worker// The response message for
479*d5c09012SAndroid Build Coastguard Worker// [Conversations.ListMessages][google.cloud.dialogflow.v2beta1.Conversations.ListMessages].
480*d5c09012SAndroid Build Coastguard Workermessage ListMessagesResponse {
481*d5c09012SAndroid Build Coastguard Worker  // Required. The list of messages. There will be a maximum number of items
482*d5c09012SAndroid Build Coastguard Worker  // returned based on the page_size field in the request.
483*d5c09012SAndroid Build Coastguard Worker  // `messages` is sorted by `create_time` in descending order.
484*d5c09012SAndroid Build Coastguard Worker  repeated Message messages = 1;
485*d5c09012SAndroid Build Coastguard Worker
486*d5c09012SAndroid Build Coastguard Worker  // Optional. Token to retrieve the next page of results, or empty if there are
487*d5c09012SAndroid Build Coastguard Worker  // no more results in the list.
488*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
489*d5c09012SAndroid Build Coastguard Worker}
490*d5c09012SAndroid Build Coastguard Worker
491*d5c09012SAndroid Build Coastguard Worker// The request message for
492*d5c09012SAndroid Build Coastguard Worker// [Conversations.SuggestConversationSummary][google.cloud.dialogflow.v2beta1.Conversations.SuggestConversationSummary].
493*d5c09012SAndroid Build Coastguard Workermessage SuggestConversationSummaryRequest {
494*d5c09012SAndroid Build Coastguard Worker  // Required. The conversation to fetch suggestion for.
495*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
496*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>`.
497*d5c09012SAndroid Build Coastguard Worker  string conversation = 1 [
498*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
499*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
500*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/Conversation"
501*d5c09012SAndroid Build Coastguard Worker    }
502*d5c09012SAndroid Build Coastguard Worker  ];
503*d5c09012SAndroid Build Coastguard Worker
504*d5c09012SAndroid Build Coastguard Worker  // The name of the latest conversation message used as context for
505*d5c09012SAndroid Build Coastguard Worker  // compiling suggestion. If empty, the latest message of the conversation will
506*d5c09012SAndroid Build Coastguard Worker  // be used.
507*d5c09012SAndroid Build Coastguard Worker  //
508*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
509*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>/messages/<Message ID>`.
510*d5c09012SAndroid Build Coastguard Worker  string latest_message = 3 [(google.api.resource_reference) = {
511*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Message"
512*d5c09012SAndroid Build Coastguard Worker  }];
513*d5c09012SAndroid Build Coastguard Worker
514*d5c09012SAndroid Build Coastguard Worker  // Max number of messages prior to and including
515*d5c09012SAndroid Build Coastguard Worker  // [latest_message] to use as context when compiling the
516*d5c09012SAndroid Build Coastguard Worker  // suggestion. By default 500 and at most 1000.
517*d5c09012SAndroid Build Coastguard Worker  int32 context_size = 4;
518*d5c09012SAndroid Build Coastguard Worker
519*d5c09012SAndroid Build Coastguard Worker  // Parameters for a human assist query. Only used for POC/demo purpose.
520*d5c09012SAndroid Build Coastguard Worker  AssistQueryParameters assist_query_params = 5;
521*d5c09012SAndroid Build Coastguard Worker}
522*d5c09012SAndroid Build Coastguard Worker
523*d5c09012SAndroid Build Coastguard Worker// The response message for
524*d5c09012SAndroid Build Coastguard Worker// [Conversations.SuggestConversationSummary][google.cloud.dialogflow.v2beta1.Conversations.SuggestConversationSummary].
525*d5c09012SAndroid Build Coastguard Workermessage SuggestConversationSummaryResponse {
526*d5c09012SAndroid Build Coastguard Worker  // Generated summary for a conversation.
527*d5c09012SAndroid Build Coastguard Worker  message Summary {
528*d5c09012SAndroid Build Coastguard Worker    // The summary content that is concatenated into one string.
529*d5c09012SAndroid Build Coastguard Worker    string text = 1;
530*d5c09012SAndroid Build Coastguard Worker
531*d5c09012SAndroid Build Coastguard Worker    // The summary content that is divided into sections. The key is the
532*d5c09012SAndroid Build Coastguard Worker    // section's name and the value is the section's content. There is no
533*d5c09012SAndroid Build Coastguard Worker    // specific format for the key or value.
534*d5c09012SAndroid Build Coastguard Worker    map<string, string> text_sections = 4;
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Worker    // The name of the answer record. Format:
537*d5c09012SAndroid Build Coastguard Worker    // "projects/<Project ID>/answerRecords/<Answer Record ID>"
538*d5c09012SAndroid Build Coastguard Worker    string answer_record = 3 [(google.api.resource_reference) = {
539*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/AnswerRecord"
540*d5c09012SAndroid Build Coastguard Worker    }];
541*d5c09012SAndroid Build Coastguard Worker
542*d5c09012SAndroid Build Coastguard Worker    // The baseline model version used to generate this summary. It is empty if
543*d5c09012SAndroid Build Coastguard Worker    // a baseline model was not used to generate this summary.
544*d5c09012SAndroid Build Coastguard Worker    string baseline_model_version = 5;
545*d5c09012SAndroid Build Coastguard Worker  }
546*d5c09012SAndroid Build Coastguard Worker
547*d5c09012SAndroid Build Coastguard Worker  // Generated summary.
548*d5c09012SAndroid Build Coastguard Worker  Summary summary = 1;
549*d5c09012SAndroid Build Coastguard Worker
550*d5c09012SAndroid Build Coastguard Worker  // The name of the latest conversation message used as context for
551*d5c09012SAndroid Build Coastguard Worker  // compiling suggestion.
552*d5c09012SAndroid Build Coastguard Worker  //
553*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
554*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>/messages/<Message ID>`.
555*d5c09012SAndroid Build Coastguard Worker  string latest_message = 2 [(google.api.resource_reference) = {
556*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Message"
557*d5c09012SAndroid Build Coastguard Worker  }];
558*d5c09012SAndroid Build Coastguard Worker
559*d5c09012SAndroid Build Coastguard Worker  // Number of messages prior to and including
560*d5c09012SAndroid Build Coastguard Worker  // [last_conversation_message][] used to compile the suggestion. It may be
561*d5c09012SAndroid Build Coastguard Worker  // smaller than the [SuggestSummaryRequest.context_size][] field in the
562*d5c09012SAndroid Build Coastguard Worker  // request if there weren't that many messages in the conversation.
563*d5c09012SAndroid Build Coastguard Worker  int32 context_size = 3;
564*d5c09012SAndroid Build Coastguard Worker}
565*d5c09012SAndroid Build Coastguard Worker
566*d5c09012SAndroid Build Coastguard Worker// The request message for
567*d5c09012SAndroid Build Coastguard Worker// [Conversations.GenerateStatelessSummary][google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSummary].
568*d5c09012SAndroid Build Coastguard Workermessage GenerateStatelessSummaryRequest {
569*d5c09012SAndroid Build Coastguard Worker  // The minimum amount of information required to generate a Summary without
570*d5c09012SAndroid Build Coastguard Worker  // having a Conversation resource created.
571*d5c09012SAndroid Build Coastguard Worker  message MinimalConversation {
572*d5c09012SAndroid Build Coastguard Worker    // Required. The messages that the Summary will be generated from. It is
573*d5c09012SAndroid Build Coastguard Worker    // expected that this message content is already redacted and does not
574*d5c09012SAndroid Build Coastguard Worker    // contain any PII. Required fields: {content, language_code, participant,
575*d5c09012SAndroid Build Coastguard Worker    // participant_role} Optional fields: {send_time} If send_time is not
576*d5c09012SAndroid Build Coastguard Worker    // provided, then the messages must be provided in chronological order.
577*d5c09012SAndroid Build Coastguard Worker    repeated Message messages = 1 [(google.api.field_behavior) = REQUIRED];
578*d5c09012SAndroid Build Coastguard Worker
579*d5c09012SAndroid Build Coastguard Worker    // Required. The parent resource to charge for the Summary's generation.
580*d5c09012SAndroid Build Coastguard Worker    // Format: `projects/<Project ID>/locations/<Location ID>`.
581*d5c09012SAndroid Build Coastguard Worker    string parent = 2 [
582*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
583*d5c09012SAndroid Build Coastguard Worker      (google.api.resource_reference) = {
584*d5c09012SAndroid Build Coastguard Worker        type: "locations.googleapis.com/Location"
585*d5c09012SAndroid Build Coastguard Worker      }
586*d5c09012SAndroid Build Coastguard Worker    ];
587*d5c09012SAndroid Build Coastguard Worker  }
588*d5c09012SAndroid Build Coastguard Worker
589*d5c09012SAndroid Build Coastguard Worker  // Required. The conversation to suggest a summary for.
590*d5c09012SAndroid Build Coastguard Worker  MinimalConversation stateless_conversation = 1
591*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
592*d5c09012SAndroid Build Coastguard Worker
593*d5c09012SAndroid Build Coastguard Worker  // Required. A ConversationProfile containing information required for Summary
594*d5c09012SAndroid Build Coastguard Worker  // generation.
595*d5c09012SAndroid Build Coastguard Worker  // Required fields: {language_code, security_settings}
596*d5c09012SAndroid Build Coastguard Worker  // Optional fields: {agent_assistant_config}
597*d5c09012SAndroid Build Coastguard Worker  ConversationProfile conversation_profile = 2
598*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
599*d5c09012SAndroid Build Coastguard Worker
600*d5c09012SAndroid Build Coastguard Worker  // The name of the latest conversation message used as context for
601*d5c09012SAndroid Build Coastguard Worker  // generating a Summary. If empty, the latest message of the conversation will
602*d5c09012SAndroid Build Coastguard Worker  // be used. The format is specific to the user and the names of the messages
603*d5c09012SAndroid Build Coastguard Worker  // provided.
604*d5c09012SAndroid Build Coastguard Worker  string latest_message = 3 [(google.api.resource_reference) = {
605*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Message"
606*d5c09012SAndroid Build Coastguard Worker  }];
607*d5c09012SAndroid Build Coastguard Worker
608*d5c09012SAndroid Build Coastguard Worker  // Max number of messages prior to and including
609*d5c09012SAndroid Build Coastguard Worker  // [latest_message] to use as context when compiling the
610*d5c09012SAndroid Build Coastguard Worker  // suggestion. By default 500 and at most 1000.
611*d5c09012SAndroid Build Coastguard Worker  int32 max_context_size = 4;
612*d5c09012SAndroid Build Coastguard Worker}
613*d5c09012SAndroid Build Coastguard Worker
614*d5c09012SAndroid Build Coastguard Worker// The response message for
615*d5c09012SAndroid Build Coastguard Worker// [Conversations.GenerateStatelessSummary][google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSummary].
616*d5c09012SAndroid Build Coastguard Workermessage GenerateStatelessSummaryResponse {
617*d5c09012SAndroid Build Coastguard Worker  // Generated summary for a conversation.
618*d5c09012SAndroid Build Coastguard Worker  message Summary {
619*d5c09012SAndroid Build Coastguard Worker    // The summary content that is concatenated into one string.
620*d5c09012SAndroid Build Coastguard Worker    string text = 1;
621*d5c09012SAndroid Build Coastguard Worker
622*d5c09012SAndroid Build Coastguard Worker    // The summary content that is divided into sections. The key is the
623*d5c09012SAndroid Build Coastguard Worker    // section's name and the value is the section's content. There is no
624*d5c09012SAndroid Build Coastguard Worker    // specific format for the key or value.
625*d5c09012SAndroid Build Coastguard Worker    map<string, string> text_sections = 2;
626*d5c09012SAndroid Build Coastguard Worker
627*d5c09012SAndroid Build Coastguard Worker    // The baseline model version used to generate this summary. It is empty if
628*d5c09012SAndroid Build Coastguard Worker    // a baseline model was not used to generate this summary.
629*d5c09012SAndroid Build Coastguard Worker    string baseline_model_version = 4;
630*d5c09012SAndroid Build Coastguard Worker  }
631*d5c09012SAndroid Build Coastguard Worker
632*d5c09012SAndroid Build Coastguard Worker  // Generated summary.
633*d5c09012SAndroid Build Coastguard Worker  Summary summary = 1;
634*d5c09012SAndroid Build Coastguard Worker
635*d5c09012SAndroid Build Coastguard Worker  // The name of the latest conversation message used as context for
636*d5c09012SAndroid Build Coastguard Worker  // compiling suggestion. The format is specific to the user and the names of
637*d5c09012SAndroid Build Coastguard Worker  // the messages provided.
638*d5c09012SAndroid Build Coastguard Worker  string latest_message = 2 [(google.api.resource_reference) = {
639*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Message"
640*d5c09012SAndroid Build Coastguard Worker  }];
641*d5c09012SAndroid Build Coastguard Worker
642*d5c09012SAndroid Build Coastguard Worker  // Number of messages prior to and including
643*d5c09012SAndroid Build Coastguard Worker  // [last_conversation_message][] used to compile the suggestion. It may be
644*d5c09012SAndroid Build Coastguard Worker  // smaller than the [GenerateStatelessSummaryRequest.context_size][] field in
645*d5c09012SAndroid Build Coastguard Worker  // the request if there weren't that many messages in the conversation.
646*d5c09012SAndroid Build Coastguard Worker  int32 context_size = 3;
647*d5c09012SAndroid Build Coastguard Worker}
648*d5c09012SAndroid Build Coastguard Worker
649*d5c09012SAndroid Build Coastguard Worker// The request message for
650*d5c09012SAndroid Build Coastguard Worker// [Conversations.SearchKnowledge][google.cloud.dialogflow.v2beta1.Conversations.SearchKnowledge].
651*d5c09012SAndroid Build Coastguard Workermessage SearchKnowledgeRequest {
652*d5c09012SAndroid Build Coastguard Worker  // The parent resource contains the conversation profile
653*d5c09012SAndroid Build Coastguard Worker  // Format: 'projects/<Project ID>' or `projects/<Project
654*d5c09012SAndroid Build Coastguard Worker  // ID>/locations/<Location ID>`.
655*d5c09012SAndroid Build Coastguard Worker  string parent = 6;
656*d5c09012SAndroid Build Coastguard Worker
657*d5c09012SAndroid Build Coastguard Worker  // Required. The natural language text query for knowledge search.
658*d5c09012SAndroid Build Coastguard Worker  TextInput query = 1 [(google.api.field_behavior) = REQUIRED];
659*d5c09012SAndroid Build Coastguard Worker
660*d5c09012SAndroid Build Coastguard Worker  // Required. The conversation profile used to configure the search.
661*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
662*d5c09012SAndroid Build Coastguard Worker  // ID>/conversationProfiles/<Conversation Profile ID>`.
663*d5c09012SAndroid Build Coastguard Worker  string conversation_profile = 2 [
664*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
665*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
666*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/ConversationProfile"
667*d5c09012SAndroid Build Coastguard Worker    }
668*d5c09012SAndroid Build Coastguard Worker  ];
669*d5c09012SAndroid Build Coastguard Worker
670*d5c09012SAndroid Build Coastguard Worker  // The ID of the search session.
671*d5c09012SAndroid Build Coastguard Worker  // The session_id can be combined with Dialogflow V3 Agent ID retrieved from
672*d5c09012SAndroid Build Coastguard Worker  // conversation profile or on its own to identify a search session. The search
673*d5c09012SAndroid Build Coastguard Worker  // history of the same session will impact the search result. It's up to the
674*d5c09012SAndroid Build Coastguard Worker  // API caller to choose an appropriate `Session ID`. It can be a random number
675*d5c09012SAndroid Build Coastguard Worker  // or some type of session identifiers (preferably hashed). The length must
676*d5c09012SAndroid Build Coastguard Worker  // not exceed 36 characters.
677*d5c09012SAndroid Build Coastguard Worker  string session_id = 3;
678*d5c09012SAndroid Build Coastguard Worker
679*d5c09012SAndroid Build Coastguard Worker  // The conversation (between human agent and end user) where the search
680*d5c09012SAndroid Build Coastguard Worker  // request is triggered. Format: `projects/<Project ID>/locations/<Location
681*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>`.
682*d5c09012SAndroid Build Coastguard Worker  string conversation = 4 [(google.api.resource_reference) = {
683*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Conversation"
684*d5c09012SAndroid Build Coastguard Worker  }];
685*d5c09012SAndroid Build Coastguard Worker
686*d5c09012SAndroid Build Coastguard Worker  // The name of the latest conversation message when the request is
687*d5c09012SAndroid Build Coastguard Worker  // triggered.
688*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<Location
689*d5c09012SAndroid Build Coastguard Worker  // ID>/conversations/<Conversation ID>/messages/<Message ID>`.
690*d5c09012SAndroid Build Coastguard Worker  string latest_message = 5 [(google.api.resource_reference) = {
691*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Message"
692*d5c09012SAndroid Build Coastguard Worker  }];
693*d5c09012SAndroid Build Coastguard Worker}
694*d5c09012SAndroid Build Coastguard Worker
695*d5c09012SAndroid Build Coastguard Worker// The response message for
696*d5c09012SAndroid Build Coastguard Worker// [Conversations.SearchKnowledge][google.cloud.dialogflow.v2beta1.Conversations.SearchKnowledge].
697*d5c09012SAndroid Build Coastguard Workermessage SearchKnowledgeResponse {
698*d5c09012SAndroid Build Coastguard Worker  // Most relevant snippets extracted from articles in the given knowledge base,
699*d5c09012SAndroid Build Coastguard Worker  // ordered by confidence.
700*d5c09012SAndroid Build Coastguard Worker  repeated SearchKnowledgeAnswer answers = 2;
701*d5c09012SAndroid Build Coastguard Worker
702*d5c09012SAndroid Build Coastguard Worker  // The rewritten query used to search knowledge.
703*d5c09012SAndroid Build Coastguard Worker  string rewritten_query = 3;
704*d5c09012SAndroid Build Coastguard Worker}
705*d5c09012SAndroid Build Coastguard Worker
706*d5c09012SAndroid Build Coastguard Worker// Represents a SearchKnowledge answer.
707*d5c09012SAndroid Build Coastguard Workermessage SearchKnowledgeAnswer {
708*d5c09012SAndroid Build Coastguard Worker  // The type of the answer.
709*d5c09012SAndroid Build Coastguard Worker  enum AnswerType {
710*d5c09012SAndroid Build Coastguard Worker    // The answer has a unspecified type.
711*d5c09012SAndroid Build Coastguard Worker    ANSWER_TYPE_UNSPECIFIED = 0;
712*d5c09012SAndroid Build Coastguard Worker
713*d5c09012SAndroid Build Coastguard Worker    // The answer is from FAQ documents.
714*d5c09012SAndroid Build Coastguard Worker    FAQ = 1;
715*d5c09012SAndroid Build Coastguard Worker
716*d5c09012SAndroid Build Coastguard Worker    // The answer is from generative model.
717*d5c09012SAndroid Build Coastguard Worker    GENERATIVE = 2;
718*d5c09012SAndroid Build Coastguard Worker
719*d5c09012SAndroid Build Coastguard Worker    // The answer is from intent matching.
720*d5c09012SAndroid Build Coastguard Worker    INTENT = 3;
721*d5c09012SAndroid Build Coastguard Worker  }
722*d5c09012SAndroid Build Coastguard Worker
723*d5c09012SAndroid Build Coastguard Worker  // The sources of the answers.
724*d5c09012SAndroid Build Coastguard Worker  message AnswerSource {
725*d5c09012SAndroid Build Coastguard Worker    // The title of the article.
726*d5c09012SAndroid Build Coastguard Worker    string title = 1;
727*d5c09012SAndroid Build Coastguard Worker
728*d5c09012SAndroid Build Coastguard Worker    // The URI of the article.
729*d5c09012SAndroid Build Coastguard Worker    string uri = 2;
730*d5c09012SAndroid Build Coastguard Worker
731*d5c09012SAndroid Build Coastguard Worker    // The relevant snippet of the article.
732*d5c09012SAndroid Build Coastguard Worker    string snippet = 3;
733*d5c09012SAndroid Build Coastguard Worker  }
734*d5c09012SAndroid Build Coastguard Worker
735*d5c09012SAndroid Build Coastguard Worker  // The piece of text from the knowledge base documents that answers
736*d5c09012SAndroid Build Coastguard Worker  // the search query
737*d5c09012SAndroid Build Coastguard Worker  string answer = 1;
738*d5c09012SAndroid Build Coastguard Worker
739*d5c09012SAndroid Build Coastguard Worker  // The type of the answer.
740*d5c09012SAndroid Build Coastguard Worker  AnswerType answer_type = 2;
741*d5c09012SAndroid Build Coastguard Worker
742*d5c09012SAndroid Build Coastguard Worker  // All sources used to generate the answer.
743*d5c09012SAndroid Build Coastguard Worker  repeated AnswerSource answer_sources = 3;
744*d5c09012SAndroid Build Coastguard Worker
745*d5c09012SAndroid Build Coastguard Worker  // The name of the answer record.
746*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/locations/<location ID>/answer
747*d5c09012SAndroid Build Coastguard Worker  // Records/<Answer Record ID>`
748*d5c09012SAndroid Build Coastguard Worker  string answer_record = 5;
749*d5c09012SAndroid Build Coastguard Worker}
750