xref: /aosp_15_r20/external/googleapis/google/cloud/contactcenterinsights/v1/resources.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.contactcenterinsights.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
23*d5c09012SAndroid Build Coastguard Worker
24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.ContactCenterInsights.V1";
25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/contactcenterinsights/apiv1/contactcenterinsightspb;contactcenterinsightspb";
26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ResourcesProto";
28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.contactcenterinsights.v1";
29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\ContactCenterInsights\\V1";
30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::ContactCenterInsights::V1";
31*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
32*d5c09012SAndroid Build Coastguard Worker  type: "dialogflow.googleapis.com/ConversationProfile"
33*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}"
34*d5c09012SAndroid Build Coastguard Worker};
35*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
36*d5c09012SAndroid Build Coastguard Worker  type: "dialogflow.googleapis.com/Participant"
37*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/conversations/{conversation}/participants/{participant}"
38*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}"
39*d5c09012SAndroid Build Coastguard Worker};
40*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
41*d5c09012SAndroid Build Coastguard Worker  type: "speech.googleapis.com/Recognizer"
42*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/recognizers/{recognizer}"
43*d5c09012SAndroid Build Coastguard Worker};
44*d5c09012SAndroid Build Coastguard Worker
45*d5c09012SAndroid Build Coastguard Worker// The conversation resource.
46*d5c09012SAndroid Build Coastguard Workermessage Conversation {
47*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
48*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/Conversation"
49*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/conversations/{conversation}"
50*d5c09012SAndroid Build Coastguard Worker  };
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard Worker  // Call-specific metadata.
53*d5c09012SAndroid Build Coastguard Worker  message CallMetadata {
54*d5c09012SAndroid Build Coastguard Worker    // The audio channel that contains the customer.
55*d5c09012SAndroid Build Coastguard Worker    int32 customer_channel = 1;
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker    // The audio channel that contains the agent.
58*d5c09012SAndroid Build Coastguard Worker    int32 agent_channel = 2;
59*d5c09012SAndroid Build Coastguard Worker  }
60*d5c09012SAndroid Build Coastguard Worker
61*d5c09012SAndroid Build Coastguard Worker  // Conversation metadata related to quality management.
62*d5c09012SAndroid Build Coastguard Worker  message QualityMetadata {
63*d5c09012SAndroid Build Coastguard Worker    // Information about an agent involved in the conversation.
64*d5c09012SAndroid Build Coastguard Worker    message AgentInfo {
65*d5c09012SAndroid Build Coastguard Worker      // A user-specified string representing the agent.
66*d5c09012SAndroid Build Coastguard Worker      string agent_id = 1;
67*d5c09012SAndroid Build Coastguard Worker
68*d5c09012SAndroid Build Coastguard Worker      // The agent's name.
69*d5c09012SAndroid Build Coastguard Worker      string display_name = 2;
70*d5c09012SAndroid Build Coastguard Worker
71*d5c09012SAndroid Build Coastguard Worker      // A user-specified string representing the agent's team.
72*d5c09012SAndroid Build Coastguard Worker      string team = 3;
73*d5c09012SAndroid Build Coastguard Worker
74*d5c09012SAndroid Build Coastguard Worker      // A user-provided string indicating the outcome of the agent's segment of
75*d5c09012SAndroid Build Coastguard Worker      // the call.
76*d5c09012SAndroid Build Coastguard Worker      string disposition_code = 4;
77*d5c09012SAndroid Build Coastguard Worker    }
78*d5c09012SAndroid Build Coastguard Worker
79*d5c09012SAndroid Build Coastguard Worker    // An arbitrary integer value indicating the customer's satisfaction rating.
80*d5c09012SAndroid Build Coastguard Worker    int32 customer_satisfaction_rating = 1;
81*d5c09012SAndroid Build Coastguard Worker
82*d5c09012SAndroid Build Coastguard Worker    // The amount of time the customer waited to connect with an agent.
83*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration wait_duration = 2;
84*d5c09012SAndroid Build Coastguard Worker
85*d5c09012SAndroid Build Coastguard Worker    // An arbitrary string value specifying the menu path the customer took.
86*d5c09012SAndroid Build Coastguard Worker    string menu_path = 3;
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker    // Information about agents involved in the call.
89*d5c09012SAndroid Build Coastguard Worker    repeated AgentInfo agent_info = 4;
90*d5c09012SAndroid Build Coastguard Worker  }
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // A message representing the transcript of a conversation.
93*d5c09012SAndroid Build Coastguard Worker  message Transcript {
94*d5c09012SAndroid Build Coastguard Worker    // A segment of a full transcript.
95*d5c09012SAndroid Build Coastguard Worker    message TranscriptSegment {
96*d5c09012SAndroid Build Coastguard Worker      // Word-level info for words in a transcript.
97*d5c09012SAndroid Build Coastguard Worker      message WordInfo {
98*d5c09012SAndroid Build Coastguard Worker        // Time offset of the start of this word relative to the beginning of
99*d5c09012SAndroid Build Coastguard Worker        // the total conversation.
100*d5c09012SAndroid Build Coastguard Worker        google.protobuf.Duration start_offset = 1;
101*d5c09012SAndroid Build Coastguard Worker
102*d5c09012SAndroid Build Coastguard Worker        // Time offset of the end of this word relative to the beginning of the
103*d5c09012SAndroid Build Coastguard Worker        // total conversation.
104*d5c09012SAndroid Build Coastguard Worker        google.protobuf.Duration end_offset = 2;
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker        // The word itself. Includes punctuation marks that surround the word.
107*d5c09012SAndroid Build Coastguard Worker        string word = 3;
108*d5c09012SAndroid Build Coastguard Worker
109*d5c09012SAndroid Build Coastguard Worker        // A confidence estimate between 0.0 and 1.0 of the fidelity of this
110*d5c09012SAndroid Build Coastguard Worker        // word. A default value of 0.0 indicates that the value is unset.
111*d5c09012SAndroid Build Coastguard Worker        float confidence = 4;
112*d5c09012SAndroid Build Coastguard Worker      }
113*d5c09012SAndroid Build Coastguard Worker
114*d5c09012SAndroid Build Coastguard Worker      // Metadata from Dialogflow relating to the current transcript segment.
115*d5c09012SAndroid Build Coastguard Worker      message DialogflowSegmentMetadata {
116*d5c09012SAndroid Build Coastguard Worker        // Whether the transcript segment was covered under the configured smart
117*d5c09012SAndroid Build Coastguard Worker        // reply allowlist in Agent Assist.
118*d5c09012SAndroid Build Coastguard Worker        bool smart_reply_allowlist_covered = 1;
119*d5c09012SAndroid Build Coastguard Worker      }
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker      // The time that the message occurred, if provided.
122*d5c09012SAndroid Build Coastguard Worker      google.protobuf.Timestamp message_time = 6;
123*d5c09012SAndroid Build Coastguard Worker
124*d5c09012SAndroid Build Coastguard Worker      // The text of this segment.
125*d5c09012SAndroid Build Coastguard Worker      string text = 1;
126*d5c09012SAndroid Build Coastguard Worker
127*d5c09012SAndroid Build Coastguard Worker      // A confidence estimate between 0.0 and 1.0 of the fidelity of this
128*d5c09012SAndroid Build Coastguard Worker      // segment. A default value of 0.0 indicates that the value is unset.
129*d5c09012SAndroid Build Coastguard Worker      float confidence = 2;
130*d5c09012SAndroid Build Coastguard Worker
131*d5c09012SAndroid Build Coastguard Worker      // A list of the word-specific information for each word in the segment.
132*d5c09012SAndroid Build Coastguard Worker      repeated WordInfo words = 3;
133*d5c09012SAndroid Build Coastguard Worker
134*d5c09012SAndroid Build Coastguard Worker      // The language code of this segment as a
135*d5c09012SAndroid Build Coastguard Worker      // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.
136*d5c09012SAndroid Build Coastguard Worker      // Example: "en-US".
137*d5c09012SAndroid Build Coastguard Worker      string language_code = 4;
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker      // For conversations derived from multi-channel audio, this is the channel
140*d5c09012SAndroid Build Coastguard Worker      // number corresponding to the audio from that channel. For
141*d5c09012SAndroid Build Coastguard Worker      // audioChannelCount = N, its output values can range from '1' to 'N'. A
142*d5c09012SAndroid Build Coastguard Worker      // channel tag of 0 indicates that the audio is mono.
143*d5c09012SAndroid Build Coastguard Worker      int32 channel_tag = 5;
144*d5c09012SAndroid Build Coastguard Worker
145*d5c09012SAndroid Build Coastguard Worker      // The participant of this segment.
146*d5c09012SAndroid Build Coastguard Worker      ConversationParticipant segment_participant = 9;
147*d5c09012SAndroid Build Coastguard Worker
148*d5c09012SAndroid Build Coastguard Worker      // CCAI metadata relating to the current transcript segment.
149*d5c09012SAndroid Build Coastguard Worker      DialogflowSegmentMetadata dialogflow_segment_metadata = 10;
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker      // The sentiment for this transcript segment.
152*d5c09012SAndroid Build Coastguard Worker      SentimentData sentiment = 11;
153*d5c09012SAndroid Build Coastguard Worker    }
154*d5c09012SAndroid Build Coastguard Worker
155*d5c09012SAndroid Build Coastguard Worker    // A list of sequential transcript segments that comprise the conversation.
156*d5c09012SAndroid Build Coastguard Worker    repeated TranscriptSegment transcript_segments = 1;
157*d5c09012SAndroid Build Coastguard Worker  }
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker  // Possible media for the conversation.
160*d5c09012SAndroid Build Coastguard Worker  enum Medium {
161*d5c09012SAndroid Build Coastguard Worker    // Default value, if unspecified will default to PHONE_CALL.
162*d5c09012SAndroid Build Coastguard Worker    MEDIUM_UNSPECIFIED = 0;
163*d5c09012SAndroid Build Coastguard Worker
164*d5c09012SAndroid Build Coastguard Worker    // The format for conversations that took place over the phone.
165*d5c09012SAndroid Build Coastguard Worker    PHONE_CALL = 1;
166*d5c09012SAndroid Build Coastguard Worker
167*d5c09012SAndroid Build Coastguard Worker    // The format for conversations that took place over chat.
168*d5c09012SAndroid Build Coastguard Worker    CHAT = 2;
169*d5c09012SAndroid Build Coastguard Worker  }
170*d5c09012SAndroid Build Coastguard Worker
171*d5c09012SAndroid Build Coastguard Worker  // Metadata that applies to the conversation.
172*d5c09012SAndroid Build Coastguard Worker  oneof metadata {
173*d5c09012SAndroid Build Coastguard Worker    // Call-specific metadata.
174*d5c09012SAndroid Build Coastguard Worker    CallMetadata call_metadata = 7;
175*d5c09012SAndroid Build Coastguard Worker  }
176*d5c09012SAndroid Build Coastguard Worker
177*d5c09012SAndroid Build Coastguard Worker  // A time to live expiration setting, can be either a specified timestamp or a
178*d5c09012SAndroid Build Coastguard Worker  // duration from the time that the conversation creation request was received.
179*d5c09012SAndroid Build Coastguard Worker  // Conversations with an expiration set will be removed up to 24 hours after
180*d5c09012SAndroid Build Coastguard Worker  // the specified time.
181*d5c09012SAndroid Build Coastguard Worker  oneof expiration {
182*d5c09012SAndroid Build Coastguard Worker    // The time at which this conversation should expire. After this time, the
183*d5c09012SAndroid Build Coastguard Worker    // conversation data and any associated analyses will be deleted.
184*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp expire_time = 15;
185*d5c09012SAndroid Build Coastguard Worker
186*d5c09012SAndroid Build Coastguard Worker    // Input only. The TTL for this resource. If specified, then this TTL will
187*d5c09012SAndroid Build Coastguard Worker    // be used to calculate the expire time.
188*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration ttl = 16
189*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = INPUT_ONLY];
190*d5c09012SAndroid Build Coastguard Worker  }
191*d5c09012SAndroid Build Coastguard Worker
192*d5c09012SAndroid Build Coastguard Worker  // Immutable. The resource name of the conversation.
193*d5c09012SAndroid Build Coastguard Worker  // Format:
194*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/conversations/{conversation}
195*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IMMUTABLE];
196*d5c09012SAndroid Build Coastguard Worker
197*d5c09012SAndroid Build Coastguard Worker  // The source of the audio and transcription for the conversation.
198*d5c09012SAndroid Build Coastguard Worker  ConversationDataSource data_source = 2;
199*d5c09012SAndroid Build Coastguard Worker
200*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which the conversation was created.
201*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
202*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
203*d5c09012SAndroid Build Coastguard Worker
204*d5c09012SAndroid Build Coastguard Worker  // Output only. The most recent time at which the conversation was updated.
205*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 4
206*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
207*d5c09012SAndroid Build Coastguard Worker
208*d5c09012SAndroid Build Coastguard Worker  // The time at which the conversation started.
209*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 17;
210*d5c09012SAndroid Build Coastguard Worker
211*d5c09012SAndroid Build Coastguard Worker  // A user-specified language code for the conversation.
212*d5c09012SAndroid Build Coastguard Worker  string language_code = 14;
213*d5c09012SAndroid Build Coastguard Worker
214*d5c09012SAndroid Build Coastguard Worker  // An opaque, user-specified string representing the human agent who handled
215*d5c09012SAndroid Build Coastguard Worker  // the conversation.
216*d5c09012SAndroid Build Coastguard Worker  string agent_id = 5;
217*d5c09012SAndroid Build Coastguard Worker
218*d5c09012SAndroid Build Coastguard Worker  // A map for the user to specify any custom fields. A maximum of 20 labels per
219*d5c09012SAndroid Build Coastguard Worker  // conversation is allowed, with a maximum of 256 characters per entry.
220*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6;
221*d5c09012SAndroid Build Coastguard Worker
222*d5c09012SAndroid Build Coastguard Worker  // Conversation metadata related to quality management.
223*d5c09012SAndroid Build Coastguard Worker  QualityMetadata quality_metadata = 24;
224*d5c09012SAndroid Build Coastguard Worker
225*d5c09012SAndroid Build Coastguard Worker  // Output only. The conversation transcript.
226*d5c09012SAndroid Build Coastguard Worker  Transcript transcript = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker  // Immutable. The conversation medium, if unspecified will default to
229*d5c09012SAndroid Build Coastguard Worker  // PHONE_CALL.
230*d5c09012SAndroid Build Coastguard Worker  Medium medium = 9 [(google.api.field_behavior) = IMMUTABLE];
231*d5c09012SAndroid Build Coastguard Worker
232*d5c09012SAndroid Build Coastguard Worker  // Output only. The duration of the conversation.
233*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration duration = 10
234*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
235*d5c09012SAndroid Build Coastguard Worker
236*d5c09012SAndroid Build Coastguard Worker  // Output only. The number of turns in the conversation.
237*d5c09012SAndroid Build Coastguard Worker  int32 turn_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
238*d5c09012SAndroid Build Coastguard Worker
239*d5c09012SAndroid Build Coastguard Worker  // Output only. The conversation's latest analysis, if one exists.
240*d5c09012SAndroid Build Coastguard Worker  Analysis latest_analysis = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
241*d5c09012SAndroid Build Coastguard Worker
242*d5c09012SAndroid Build Coastguard Worker  // Output only. Latest summary of the conversation.
243*d5c09012SAndroid Build Coastguard Worker  ConversationSummarizationSuggestionData latest_summary = 20
244*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
245*d5c09012SAndroid Build Coastguard Worker
246*d5c09012SAndroid Build Coastguard Worker  // Output only. The annotations that were generated during the customer and
247*d5c09012SAndroid Build Coastguard Worker  // agent interaction.
248*d5c09012SAndroid Build Coastguard Worker  repeated RuntimeAnnotation runtime_annotations = 13
249*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
250*d5c09012SAndroid Build Coastguard Worker
251*d5c09012SAndroid Build Coastguard Worker  // Output only. All the matched Dialogflow intents in the call. The key
252*d5c09012SAndroid Build Coastguard Worker  // corresponds to a Dialogflow intent, format:
253*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/agent/{agent}/intents/{intent}
254*d5c09012SAndroid Build Coastguard Worker  map<string, DialogflowIntent> dialogflow_intents = 18
255*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
256*d5c09012SAndroid Build Coastguard Worker
257*d5c09012SAndroid Build Coastguard Worker  // Obfuscated user ID which the customer sent to us.
258*d5c09012SAndroid Build Coastguard Worker  string obfuscated_user_id = 21;
259*d5c09012SAndroid Build Coastguard Worker}
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker// The analysis resource.
262*d5c09012SAndroid Build Coastguard Workermessage Analysis {
263*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
264*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/Analysis"
265*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis}"
266*d5c09012SAndroid Build Coastguard Worker  };
267*d5c09012SAndroid Build Coastguard Worker
268*d5c09012SAndroid Build Coastguard Worker  // Immutable. The resource name of the analysis.
269*d5c09012SAndroid Build Coastguard Worker  // Format:
270*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis}
271*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IMMUTABLE];
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which the analysis was requested.
274*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp request_time = 2
275*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
276*d5c09012SAndroid Build Coastguard Worker
277*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which the analysis was created, which occurs when
278*d5c09012SAndroid Build Coastguard Worker  // the long-running operation completes.
279*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
280*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
281*d5c09012SAndroid Build Coastguard Worker
282*d5c09012SAndroid Build Coastguard Worker  // Output only. The result of the analysis, which is populated when the
283*d5c09012SAndroid Build Coastguard Worker  // analysis finishes.
284*d5c09012SAndroid Build Coastguard Worker  AnalysisResult analysis_result = 7
285*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
286*d5c09012SAndroid Build Coastguard Worker
287*d5c09012SAndroid Build Coastguard Worker  // To select the annotators to run and the phrase matchers to use
288*d5c09012SAndroid Build Coastguard Worker  // (if any). If not specified, all annotators will be run.
289*d5c09012SAndroid Build Coastguard Worker  AnnotatorSelector annotator_selector = 8;
290*d5c09012SAndroid Build Coastguard Worker}
291*d5c09012SAndroid Build Coastguard Worker
292*d5c09012SAndroid Build Coastguard Worker// The conversation source, which is a combination of transcript and audio.
293*d5c09012SAndroid Build Coastguard Workermessage ConversationDataSource {
294*d5c09012SAndroid Build Coastguard Worker  // The source of the conversation.
295*d5c09012SAndroid Build Coastguard Worker  oneof source {
296*d5c09012SAndroid Build Coastguard Worker    // A Cloud Storage location specification for the audio and transcript.
297*d5c09012SAndroid Build Coastguard Worker    GcsSource gcs_source = 1;
298*d5c09012SAndroid Build Coastguard Worker
299*d5c09012SAndroid Build Coastguard Worker    // The source when the conversation comes from Dialogflow.
300*d5c09012SAndroid Build Coastguard Worker    DialogflowSource dialogflow_source = 3;
301*d5c09012SAndroid Build Coastguard Worker  }
302*d5c09012SAndroid Build Coastguard Worker}
303*d5c09012SAndroid Build Coastguard Worker
304*d5c09012SAndroid Build Coastguard Worker// A Cloud Storage source of conversation data.
305*d5c09012SAndroid Build Coastguard Workermessage GcsSource {
306*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage URI that points to a file that contains the conversation
307*d5c09012SAndroid Build Coastguard Worker  // audio.
308*d5c09012SAndroid Build Coastguard Worker  string audio_uri = 1;
309*d5c09012SAndroid Build Coastguard Worker
310*d5c09012SAndroid Build Coastguard Worker  // Immutable. Cloud Storage URI that points to a file that contains the
311*d5c09012SAndroid Build Coastguard Worker  // conversation transcript.
312*d5c09012SAndroid Build Coastguard Worker  string transcript_uri = 2 [(google.api.field_behavior) = IMMUTABLE];
313*d5c09012SAndroid Build Coastguard Worker}
314*d5c09012SAndroid Build Coastguard Worker
315*d5c09012SAndroid Build Coastguard Worker// A Dialogflow source of conversation data.
316*d5c09012SAndroid Build Coastguard Workermessage DialogflowSource {
317*d5c09012SAndroid Build Coastguard Worker  // Output only. The name of the Dialogflow conversation that this conversation
318*d5c09012SAndroid Build Coastguard Worker  // resource is derived from. Format:
319*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/conversations/{conversation}
320*d5c09012SAndroid Build Coastguard Worker  string dialogflow_conversation = 1
321*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
322*d5c09012SAndroid Build Coastguard Worker
323*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage URI that points to a file that contains the conversation
324*d5c09012SAndroid Build Coastguard Worker  // audio.
325*d5c09012SAndroid Build Coastguard Worker  string audio_uri = 3;
326*d5c09012SAndroid Build Coastguard Worker}
327*d5c09012SAndroid Build Coastguard Worker
328*d5c09012SAndroid Build Coastguard Worker// The result of an analysis.
329*d5c09012SAndroid Build Coastguard Workermessage AnalysisResult {
330*d5c09012SAndroid Build Coastguard Worker  // Call-specific metadata created during analysis.
331*d5c09012SAndroid Build Coastguard Worker  message CallAnalysisMetadata {
332*d5c09012SAndroid Build Coastguard Worker    // A list of call annotations that apply to this call.
333*d5c09012SAndroid Build Coastguard Worker    repeated CallAnnotation annotations = 2;
334*d5c09012SAndroid Build Coastguard Worker
335*d5c09012SAndroid Build Coastguard Worker    // All the entities in the call.
336*d5c09012SAndroid Build Coastguard Worker    map<string, Entity> entities = 3;
337*d5c09012SAndroid Build Coastguard Worker
338*d5c09012SAndroid Build Coastguard Worker    // Overall conversation-level sentiment for each channel of the call.
339*d5c09012SAndroid Build Coastguard Worker    repeated ConversationLevelSentiment sentiments = 4;
340*d5c09012SAndroid Build Coastguard Worker
341*d5c09012SAndroid Build Coastguard Worker    // All the matched intents in the call.
342*d5c09012SAndroid Build Coastguard Worker    map<string, Intent> intents = 6;
343*d5c09012SAndroid Build Coastguard Worker
344*d5c09012SAndroid Build Coastguard Worker    // All the matched phrase matchers in the call.
345*d5c09012SAndroid Build Coastguard Worker    map<string, PhraseMatchData> phrase_matchers = 7;
346*d5c09012SAndroid Build Coastguard Worker
347*d5c09012SAndroid Build Coastguard Worker    // Overall conversation-level issue modeling result.
348*d5c09012SAndroid Build Coastguard Worker    IssueModelResult issue_model_result = 8;
349*d5c09012SAndroid Build Coastguard Worker  }
350*d5c09012SAndroid Build Coastguard Worker
351*d5c09012SAndroid Build Coastguard Worker  // Metadata discovered during analysis.
352*d5c09012SAndroid Build Coastguard Worker  oneof metadata {
353*d5c09012SAndroid Build Coastguard Worker    // Call-specific metadata created by the analysis.
354*d5c09012SAndroid Build Coastguard Worker    CallAnalysisMetadata call_analysis_metadata = 2;
355*d5c09012SAndroid Build Coastguard Worker  }
356*d5c09012SAndroid Build Coastguard Worker
357*d5c09012SAndroid Build Coastguard Worker  // The time at which the analysis ended.
358*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp end_time = 1;
359*d5c09012SAndroid Build Coastguard Worker}
360*d5c09012SAndroid Build Coastguard Worker
361*d5c09012SAndroid Build Coastguard Worker// Issue Modeling result on a conversation.
362*d5c09012SAndroid Build Coastguard Workermessage IssueModelResult {
363*d5c09012SAndroid Build Coastguard Worker  // Issue model that generates the result.
364*d5c09012SAndroid Build Coastguard Worker  // Format: projects/{project}/locations/{location}/issueModels/{issue_model}
365*d5c09012SAndroid Build Coastguard Worker  string issue_model = 1 [(google.api.resource_reference) = {
366*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/IssueModel"
367*d5c09012SAndroid Build Coastguard Worker  }];
368*d5c09012SAndroid Build Coastguard Worker
369*d5c09012SAndroid Build Coastguard Worker  // All the matched issues.
370*d5c09012SAndroid Build Coastguard Worker  repeated IssueAssignment issues = 2;
371*d5c09012SAndroid Build Coastguard Worker}
372*d5c09012SAndroid Build Coastguard Worker
373*d5c09012SAndroid Build Coastguard Worker// One channel of conversation-level sentiment data.
374*d5c09012SAndroid Build Coastguard Workermessage ConversationLevelSentiment {
375*d5c09012SAndroid Build Coastguard Worker  // The channel of the audio that the data applies to.
376*d5c09012SAndroid Build Coastguard Worker  int32 channel_tag = 1;
377*d5c09012SAndroid Build Coastguard Worker
378*d5c09012SAndroid Build Coastguard Worker  // Data specifying sentiment.
379*d5c09012SAndroid Build Coastguard Worker  SentimentData sentiment_data = 2;
380*d5c09012SAndroid Build Coastguard Worker}
381*d5c09012SAndroid Build Coastguard Worker
382*d5c09012SAndroid Build Coastguard Worker// Information about the issue.
383*d5c09012SAndroid Build Coastguard Workermessage IssueAssignment {
384*d5c09012SAndroid Build Coastguard Worker  // Resource name of the assigned issue.
385*d5c09012SAndroid Build Coastguard Worker  string issue = 1;
386*d5c09012SAndroid Build Coastguard Worker
387*d5c09012SAndroid Build Coastguard Worker  // Score indicating the likelihood of the issue assignment.
388*d5c09012SAndroid Build Coastguard Worker  // currently bounded on [0,1].
389*d5c09012SAndroid Build Coastguard Worker  double score = 2;
390*d5c09012SAndroid Build Coastguard Worker
391*d5c09012SAndroid Build Coastguard Worker  // Immutable. Display name of the assigned issue. This field is set at time of
392*d5c09012SAndroid Build Coastguard Worker  // analyis and immutable since then.
393*d5c09012SAndroid Build Coastguard Worker  string display_name = 3 [(google.api.field_behavior) = IMMUTABLE];
394*d5c09012SAndroid Build Coastguard Worker}
395*d5c09012SAndroid Build Coastguard Worker
396*d5c09012SAndroid Build Coastguard Worker// A piece of metadata that applies to a window of a call.
397*d5c09012SAndroid Build Coastguard Workermessage CallAnnotation {
398*d5c09012SAndroid Build Coastguard Worker  // The data in the annotation.
399*d5c09012SAndroid Build Coastguard Worker  oneof data {
400*d5c09012SAndroid Build Coastguard Worker    // Data specifying an interruption.
401*d5c09012SAndroid Build Coastguard Worker    InterruptionData interruption_data = 10;
402*d5c09012SAndroid Build Coastguard Worker
403*d5c09012SAndroid Build Coastguard Worker    // Data specifying sentiment.
404*d5c09012SAndroid Build Coastguard Worker    SentimentData sentiment_data = 11;
405*d5c09012SAndroid Build Coastguard Worker
406*d5c09012SAndroid Build Coastguard Worker    // Data specifying silence.
407*d5c09012SAndroid Build Coastguard Worker    SilenceData silence_data = 12;
408*d5c09012SAndroid Build Coastguard Worker
409*d5c09012SAndroid Build Coastguard Worker    // Data specifying a hold.
410*d5c09012SAndroid Build Coastguard Worker    HoldData hold_data = 13;
411*d5c09012SAndroid Build Coastguard Worker
412*d5c09012SAndroid Build Coastguard Worker    // Data specifying an entity mention.
413*d5c09012SAndroid Build Coastguard Worker    EntityMentionData entity_mention_data = 15;
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker    // Data specifying an intent match.
416*d5c09012SAndroid Build Coastguard Worker    IntentMatchData intent_match_data = 16;
417*d5c09012SAndroid Build Coastguard Worker
418*d5c09012SAndroid Build Coastguard Worker    // Data specifying a phrase match.
419*d5c09012SAndroid Build Coastguard Worker    PhraseMatchData phrase_match_data = 17;
420*d5c09012SAndroid Build Coastguard Worker
421*d5c09012SAndroid Build Coastguard Worker    // Data specifying an issue match.
422*d5c09012SAndroid Build Coastguard Worker    IssueMatchData issue_match_data = 18;
423*d5c09012SAndroid Build Coastguard Worker  }
424*d5c09012SAndroid Build Coastguard Worker
425*d5c09012SAndroid Build Coastguard Worker  // The channel of the audio where the annotation occurs. For single-channel
426*d5c09012SAndroid Build Coastguard Worker  // audio, this field is not populated.
427*d5c09012SAndroid Build Coastguard Worker  int32 channel_tag = 1;
428*d5c09012SAndroid Build Coastguard Worker
429*d5c09012SAndroid Build Coastguard Worker  // The boundary in the conversation where the annotation starts, inclusive.
430*d5c09012SAndroid Build Coastguard Worker  AnnotationBoundary annotation_start_boundary = 4;
431*d5c09012SAndroid Build Coastguard Worker
432*d5c09012SAndroid Build Coastguard Worker  // The boundary in the conversation where the annotation ends, inclusive.
433*d5c09012SAndroid Build Coastguard Worker  AnnotationBoundary annotation_end_boundary = 5;
434*d5c09012SAndroid Build Coastguard Worker}
435*d5c09012SAndroid Build Coastguard Worker
436*d5c09012SAndroid Build Coastguard Worker// A point in a conversation that marks the start or the end of an annotation.
437*d5c09012SAndroid Build Coastguard Workermessage AnnotationBoundary {
438*d5c09012SAndroid Build Coastguard Worker  // A detailed boundary, which describes a more specific point.
439*d5c09012SAndroid Build Coastguard Worker  oneof detailed_boundary {
440*d5c09012SAndroid Build Coastguard Worker    // The word index of this boundary with respect to the first word in the
441*d5c09012SAndroid Build Coastguard Worker    // transcript piece. This index starts at zero.
442*d5c09012SAndroid Build Coastguard Worker    int32 word_index = 3;
443*d5c09012SAndroid Build Coastguard Worker  }
444*d5c09012SAndroid Build Coastguard Worker
445*d5c09012SAndroid Build Coastguard Worker  // The index in the sequence of transcribed pieces of the conversation where
446*d5c09012SAndroid Build Coastguard Worker  // the boundary is located. This index starts at zero.
447*d5c09012SAndroid Build Coastguard Worker  int32 transcript_index = 1;
448*d5c09012SAndroid Build Coastguard Worker}
449*d5c09012SAndroid Build Coastguard Worker
450*d5c09012SAndroid Build Coastguard Worker// The data for an entity annotation.
451*d5c09012SAndroid Build Coastguard Worker// Represents a phrase in the conversation that is a known entity, such
452*d5c09012SAndroid Build Coastguard Worker// as a person, an organization, or location.
453*d5c09012SAndroid Build Coastguard Workermessage Entity {
454*d5c09012SAndroid Build Coastguard Worker  // The type of the entity. For most entity types, the associated metadata is a
455*d5c09012SAndroid Build Coastguard Worker  // Wikipedia URL (`wikipedia_url`) and Knowledge Graph MID (`mid`). The table
456*d5c09012SAndroid Build Coastguard Worker  // below lists the associated fields for entities that have different
457*d5c09012SAndroid Build Coastguard Worker  // metadata.
458*d5c09012SAndroid Build Coastguard Worker  enum Type {
459*d5c09012SAndroid Build Coastguard Worker    // Unspecified.
460*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
461*d5c09012SAndroid Build Coastguard Worker
462*d5c09012SAndroid Build Coastguard Worker    // Person.
463*d5c09012SAndroid Build Coastguard Worker    PERSON = 1;
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker    // Location.
466*d5c09012SAndroid Build Coastguard Worker    LOCATION = 2;
467*d5c09012SAndroid Build Coastguard Worker
468*d5c09012SAndroid Build Coastguard Worker    // Organization.
469*d5c09012SAndroid Build Coastguard Worker    ORGANIZATION = 3;
470*d5c09012SAndroid Build Coastguard Worker
471*d5c09012SAndroid Build Coastguard Worker    // Event.
472*d5c09012SAndroid Build Coastguard Worker    EVENT = 4;
473*d5c09012SAndroid Build Coastguard Worker
474*d5c09012SAndroid Build Coastguard Worker    // Artwork.
475*d5c09012SAndroid Build Coastguard Worker    WORK_OF_ART = 5;
476*d5c09012SAndroid Build Coastguard Worker
477*d5c09012SAndroid Build Coastguard Worker    // Consumer product.
478*d5c09012SAndroid Build Coastguard Worker    CONSUMER_GOOD = 6;
479*d5c09012SAndroid Build Coastguard Worker
480*d5c09012SAndroid Build Coastguard Worker    // Other types of entities.
481*d5c09012SAndroid Build Coastguard Worker    OTHER = 7;
482*d5c09012SAndroid Build Coastguard Worker
483*d5c09012SAndroid Build Coastguard Worker    // Phone number.
484*d5c09012SAndroid Build Coastguard Worker    //
485*d5c09012SAndroid Build Coastguard Worker    // The metadata lists the phone number (formatted according to local
486*d5c09012SAndroid Build Coastguard Worker    // convention), plus whichever additional elements appear in the text:
487*d5c09012SAndroid Build Coastguard Worker    //
488*d5c09012SAndroid Build Coastguard Worker    // * `number` - The actual number, broken down into sections according to
489*d5c09012SAndroid Build Coastguard Worker    // local convention.
490*d5c09012SAndroid Build Coastguard Worker    // * `national_prefix` - Country code, if detected.
491*d5c09012SAndroid Build Coastguard Worker    // * `area_code` - Region or area code, if detected.
492*d5c09012SAndroid Build Coastguard Worker    // * `extension` - Phone extension (to be dialed after connection), if
493*d5c09012SAndroid Build Coastguard Worker    // detected.
494*d5c09012SAndroid Build Coastguard Worker    PHONE_NUMBER = 9;
495*d5c09012SAndroid Build Coastguard Worker
496*d5c09012SAndroid Build Coastguard Worker    // Address.
497*d5c09012SAndroid Build Coastguard Worker    //
498*d5c09012SAndroid Build Coastguard Worker    // The metadata identifies the street number and locality plus whichever
499*d5c09012SAndroid Build Coastguard Worker    // additional elements appear in the text:
500*d5c09012SAndroid Build Coastguard Worker    //
501*d5c09012SAndroid Build Coastguard Worker    // * `street_number` - Street number.
502*d5c09012SAndroid Build Coastguard Worker    // * `locality` - City or town.
503*d5c09012SAndroid Build Coastguard Worker    // * `street_name` - Street/route name, if detected.
504*d5c09012SAndroid Build Coastguard Worker    // * `postal_code` - Postal code, if detected.
505*d5c09012SAndroid Build Coastguard Worker    // * `country` - Country, if detected.
506*d5c09012SAndroid Build Coastguard Worker    // * `broad_region` - Administrative area, such as the state, if detected.
507*d5c09012SAndroid Build Coastguard Worker    // * `narrow_region` - Smaller administrative area, such as county, if
508*d5c09012SAndroid Build Coastguard Worker    // detected.
509*d5c09012SAndroid Build Coastguard Worker    // * `sublocality` - Used in Asian addresses to demark a district within a
510*d5c09012SAndroid Build Coastguard Worker    // city, if detected.
511*d5c09012SAndroid Build Coastguard Worker    ADDRESS = 10;
512*d5c09012SAndroid Build Coastguard Worker
513*d5c09012SAndroid Build Coastguard Worker    // Date.
514*d5c09012SAndroid Build Coastguard Worker    //
515*d5c09012SAndroid Build Coastguard Worker    // The metadata identifies the components of the date:
516*d5c09012SAndroid Build Coastguard Worker    //
517*d5c09012SAndroid Build Coastguard Worker    // * `year` - Four digit year, if detected.
518*d5c09012SAndroid Build Coastguard Worker    // * `month` - Two digit month number, if detected.
519*d5c09012SAndroid Build Coastguard Worker    // * `day` - Two digit day number, if detected.
520*d5c09012SAndroid Build Coastguard Worker    DATE = 11;
521*d5c09012SAndroid Build Coastguard Worker
522*d5c09012SAndroid Build Coastguard Worker    // Number.
523*d5c09012SAndroid Build Coastguard Worker    //
524*d5c09012SAndroid Build Coastguard Worker    // The metadata is the number itself.
525*d5c09012SAndroid Build Coastguard Worker    NUMBER = 12;
526*d5c09012SAndroid Build Coastguard Worker
527*d5c09012SAndroid Build Coastguard Worker    // Price.
528*d5c09012SAndroid Build Coastguard Worker    //
529*d5c09012SAndroid Build Coastguard Worker    // The metadata identifies the `value` and `currency`.
530*d5c09012SAndroid Build Coastguard Worker    PRICE = 13;
531*d5c09012SAndroid Build Coastguard Worker  }
532*d5c09012SAndroid Build Coastguard Worker
533*d5c09012SAndroid Build Coastguard Worker  // The representative name for the entity.
534*d5c09012SAndroid Build Coastguard Worker  string display_name = 1;
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Worker  // The entity type.
537*d5c09012SAndroid Build Coastguard Worker  Type type = 2;
538*d5c09012SAndroid Build Coastguard Worker
539*d5c09012SAndroid Build Coastguard Worker  // Metadata associated with the entity.
540*d5c09012SAndroid Build Coastguard Worker  //
541*d5c09012SAndroid Build Coastguard Worker  // For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`)
542*d5c09012SAndroid Build Coastguard Worker  // and Knowledge Graph MID (`mid`), if they are available. For the metadata
543*d5c09012SAndroid Build Coastguard Worker  // associated with other entity types, see the Type table below.
544*d5c09012SAndroid Build Coastguard Worker  map<string, string> metadata = 3;
545*d5c09012SAndroid Build Coastguard Worker
546*d5c09012SAndroid Build Coastguard Worker  // The salience score associated with the entity in the [0, 1.0] range.
547*d5c09012SAndroid Build Coastguard Worker  //
548*d5c09012SAndroid Build Coastguard Worker  // The salience score for an entity provides information about the
549*d5c09012SAndroid Build Coastguard Worker  // importance or centrality of that entity to the entire document text.
550*d5c09012SAndroid Build Coastguard Worker  // Scores closer to 0 are less salient, while scores closer to 1.0 are highly
551*d5c09012SAndroid Build Coastguard Worker  // salient.
552*d5c09012SAndroid Build Coastguard Worker  float salience = 4;
553*d5c09012SAndroid Build Coastguard Worker
554*d5c09012SAndroid Build Coastguard Worker  // The aggregate sentiment expressed for this entity in the conversation.
555*d5c09012SAndroid Build Coastguard Worker  SentimentData sentiment = 5;
556*d5c09012SAndroid Build Coastguard Worker}
557*d5c09012SAndroid Build Coastguard Worker
558*d5c09012SAndroid Build Coastguard Worker// The data for an intent.
559*d5c09012SAndroid Build Coastguard Worker// Represents a detected intent in the conversation, for example MAKES_PROMISE.
560*d5c09012SAndroid Build Coastguard Workermessage Intent {
561*d5c09012SAndroid Build Coastguard Worker  // The unique identifier of the intent.
562*d5c09012SAndroid Build Coastguard Worker  string id = 1;
563*d5c09012SAndroid Build Coastguard Worker
564*d5c09012SAndroid Build Coastguard Worker  // The human-readable name of the intent.
565*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
566*d5c09012SAndroid Build Coastguard Worker}
567*d5c09012SAndroid Build Coastguard Worker
568*d5c09012SAndroid Build Coastguard Worker// The data for a matched phrase matcher.
569*d5c09012SAndroid Build Coastguard Worker// Represents information identifying a phrase matcher for a given match.
570*d5c09012SAndroid Build Coastguard Workermessage PhraseMatchData {
571*d5c09012SAndroid Build Coastguard Worker  // The unique identifier (the resource name) of the phrase matcher.
572*d5c09012SAndroid Build Coastguard Worker  string phrase_matcher = 1;
573*d5c09012SAndroid Build Coastguard Worker
574*d5c09012SAndroid Build Coastguard Worker  // The human-readable name of the phrase matcher.
575*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
576*d5c09012SAndroid Build Coastguard Worker}
577*d5c09012SAndroid Build Coastguard Worker
578*d5c09012SAndroid Build Coastguard Worker// The data for a Dialogflow intent.
579*d5c09012SAndroid Build Coastguard Worker// Represents a detected intent in the conversation, e.g. MAKES_PROMISE.
580*d5c09012SAndroid Build Coastguard Workermessage DialogflowIntent {
581*d5c09012SAndroid Build Coastguard Worker  // The human-readable name of the intent.
582*d5c09012SAndroid Build Coastguard Worker  string display_name = 1;
583*d5c09012SAndroid Build Coastguard Worker}
584*d5c09012SAndroid Build Coastguard Worker
585*d5c09012SAndroid Build Coastguard Worker// The data for an interruption annotation.
586*d5c09012SAndroid Build Coastguard Workermessage InterruptionData {}
587*d5c09012SAndroid Build Coastguard Worker
588*d5c09012SAndroid Build Coastguard Worker// The data for a silence annotation.
589*d5c09012SAndroid Build Coastguard Workermessage SilenceData {}
590*d5c09012SAndroid Build Coastguard Worker
591*d5c09012SAndroid Build Coastguard Worker// The data for a hold annotation.
592*d5c09012SAndroid Build Coastguard Workermessage HoldData {}
593*d5c09012SAndroid Build Coastguard Worker
594*d5c09012SAndroid Build Coastguard Worker// The data for an entity mention annotation.
595*d5c09012SAndroid Build Coastguard Worker// This represents a mention of an `Entity` in the conversation.
596*d5c09012SAndroid Build Coastguard Workermessage EntityMentionData {
597*d5c09012SAndroid Build Coastguard Worker  // The supported types of mentions.
598*d5c09012SAndroid Build Coastguard Worker  enum MentionType {
599*d5c09012SAndroid Build Coastguard Worker    // Unspecified.
600*d5c09012SAndroid Build Coastguard Worker    MENTION_TYPE_UNSPECIFIED = 0;
601*d5c09012SAndroid Build Coastguard Worker
602*d5c09012SAndroid Build Coastguard Worker    // Proper noun.
603*d5c09012SAndroid Build Coastguard Worker    PROPER = 1;
604*d5c09012SAndroid Build Coastguard Worker
605*d5c09012SAndroid Build Coastguard Worker    // Common noun (or noun compound).
606*d5c09012SAndroid Build Coastguard Worker    COMMON = 2;
607*d5c09012SAndroid Build Coastguard Worker  }
608*d5c09012SAndroid Build Coastguard Worker
609*d5c09012SAndroid Build Coastguard Worker  // The key of this entity in conversation entities.
610*d5c09012SAndroid Build Coastguard Worker  // Can be used to retrieve the exact `Entity` this mention is attached to.
611*d5c09012SAndroid Build Coastguard Worker  string entity_unique_id = 1;
612*d5c09012SAndroid Build Coastguard Worker
613*d5c09012SAndroid Build Coastguard Worker  // The type of the entity mention.
614*d5c09012SAndroid Build Coastguard Worker  MentionType type = 2;
615*d5c09012SAndroid Build Coastguard Worker
616*d5c09012SAndroid Build Coastguard Worker  // Sentiment expressed for this mention of the entity.
617*d5c09012SAndroid Build Coastguard Worker  SentimentData sentiment = 3;
618*d5c09012SAndroid Build Coastguard Worker}
619*d5c09012SAndroid Build Coastguard Worker
620*d5c09012SAndroid Build Coastguard Worker// The data for an intent match.
621*d5c09012SAndroid Build Coastguard Worker// Represents an intent match for a text segment in the conversation. A text
622*d5c09012SAndroid Build Coastguard Worker// segment can be part of a sentence, a complete sentence, or an utterance
623*d5c09012SAndroid Build Coastguard Worker// with multiple sentences.
624*d5c09012SAndroid Build Coastguard Workermessage IntentMatchData {
625*d5c09012SAndroid Build Coastguard Worker  // The id of the matched intent.
626*d5c09012SAndroid Build Coastguard Worker  // Can be used to retrieve the corresponding intent information.
627*d5c09012SAndroid Build Coastguard Worker  string intent_unique_id = 1;
628*d5c09012SAndroid Build Coastguard Worker}
629*d5c09012SAndroid Build Coastguard Worker
630*d5c09012SAndroid Build Coastguard Worker// The data for a sentiment annotation.
631*d5c09012SAndroid Build Coastguard Workermessage SentimentData {
632*d5c09012SAndroid Build Coastguard Worker  // A non-negative number from 0 to infinity which represents the abolute
633*d5c09012SAndroid Build Coastguard Worker  // magnitude of sentiment regardless of score.
634*d5c09012SAndroid Build Coastguard Worker  float magnitude = 1;
635*d5c09012SAndroid Build Coastguard Worker
636*d5c09012SAndroid Build Coastguard Worker  // The sentiment score between -1.0 (negative) and 1.0 (positive).
637*d5c09012SAndroid Build Coastguard Worker  float score = 2;
638*d5c09012SAndroid Build Coastguard Worker}
639*d5c09012SAndroid Build Coastguard Worker
640*d5c09012SAndroid Build Coastguard Worker// The data for an issue match annotation.
641*d5c09012SAndroid Build Coastguard Workermessage IssueMatchData {
642*d5c09012SAndroid Build Coastguard Worker  // Information about the issue's assignment.
643*d5c09012SAndroid Build Coastguard Worker  IssueAssignment issue_assignment = 1;
644*d5c09012SAndroid Build Coastguard Worker}
645*d5c09012SAndroid Build Coastguard Worker
646*d5c09012SAndroid Build Coastguard Worker// The issue model resource.
647*d5c09012SAndroid Build Coastguard Workermessage IssueModel {
648*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
649*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/IssueModel"
650*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/issueModels/{issue_model}"
651*d5c09012SAndroid Build Coastguard Worker  };
652*d5c09012SAndroid Build Coastguard Worker
653*d5c09012SAndroid Build Coastguard Worker  // Configs for the input data used to create the issue model.
654*d5c09012SAndroid Build Coastguard Worker  message InputDataConfig {
655*d5c09012SAndroid Build Coastguard Worker    // Medium of conversations used in training data. This field is being
656*d5c09012SAndroid Build Coastguard Worker    // deprecated. To specify the medium to be used in training a new issue
657*d5c09012SAndroid Build Coastguard Worker    // model, set the `medium` field on `filter`.
658*d5c09012SAndroid Build Coastguard Worker    Conversation.Medium medium = 1 [deprecated = true];
659*d5c09012SAndroid Build Coastguard Worker
660*d5c09012SAndroid Build Coastguard Worker    // Output only. Number of conversations used in training. Output only.
661*d5c09012SAndroid Build Coastguard Worker    int64 training_conversations_count = 2
662*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
663*d5c09012SAndroid Build Coastguard Worker
664*d5c09012SAndroid Build Coastguard Worker    // A filter to reduce the conversations used for training the model to a
665*d5c09012SAndroid Build Coastguard Worker    // specific subset.
666*d5c09012SAndroid Build Coastguard Worker    string filter = 3;
667*d5c09012SAndroid Build Coastguard Worker  }
668*d5c09012SAndroid Build Coastguard Worker
669*d5c09012SAndroid Build Coastguard Worker  // State of the model.
670*d5c09012SAndroid Build Coastguard Worker  enum State {
671*d5c09012SAndroid Build Coastguard Worker    // Unspecified.
672*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
673*d5c09012SAndroid Build Coastguard Worker
674*d5c09012SAndroid Build Coastguard Worker    // Model is not deployed but is ready to deploy.
675*d5c09012SAndroid Build Coastguard Worker    UNDEPLOYED = 1;
676*d5c09012SAndroid Build Coastguard Worker
677*d5c09012SAndroid Build Coastguard Worker    // Model is being deployed.
678*d5c09012SAndroid Build Coastguard Worker    DEPLOYING = 2;
679*d5c09012SAndroid Build Coastguard Worker
680*d5c09012SAndroid Build Coastguard Worker    // Model is deployed and is ready to be used. A model can only be used in
681*d5c09012SAndroid Build Coastguard Worker    // analysis if it's in this state.
682*d5c09012SAndroid Build Coastguard Worker    DEPLOYED = 3;
683*d5c09012SAndroid Build Coastguard Worker
684*d5c09012SAndroid Build Coastguard Worker    // Model is being undeployed.
685*d5c09012SAndroid Build Coastguard Worker    UNDEPLOYING = 4;
686*d5c09012SAndroid Build Coastguard Worker
687*d5c09012SAndroid Build Coastguard Worker    // Model is being deleted.
688*d5c09012SAndroid Build Coastguard Worker    DELETING = 5;
689*d5c09012SAndroid Build Coastguard Worker  }
690*d5c09012SAndroid Build Coastguard Worker
691*d5c09012SAndroid Build Coastguard Worker  // Type of the model.
692*d5c09012SAndroid Build Coastguard Worker  enum ModelType {
693*d5c09012SAndroid Build Coastguard Worker    // Unspecified model type.
694*d5c09012SAndroid Build Coastguard Worker    MODEL_TYPE_UNSPECIFIED = 0;
695*d5c09012SAndroid Build Coastguard Worker
696*d5c09012SAndroid Build Coastguard Worker    // Type V1.
697*d5c09012SAndroid Build Coastguard Worker    TYPE_V1 = 1;
698*d5c09012SAndroid Build Coastguard Worker
699*d5c09012SAndroid Build Coastguard Worker    // Type V2.
700*d5c09012SAndroid Build Coastguard Worker    TYPE_V2 = 2;
701*d5c09012SAndroid Build Coastguard Worker  }
702*d5c09012SAndroid Build Coastguard Worker
703*d5c09012SAndroid Build Coastguard Worker  // Immutable. The resource name of the issue model.
704*d5c09012SAndroid Build Coastguard Worker  // Format:
705*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/issueModels/{issue_model}
706*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IMMUTABLE];
707*d5c09012SAndroid Build Coastguard Worker
708*d5c09012SAndroid Build Coastguard Worker  // The representative name for the issue model.
709*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
710*d5c09012SAndroid Build Coastguard Worker
711*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which this issue model was created.
712*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
713*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
714*d5c09012SAndroid Build Coastguard Worker
715*d5c09012SAndroid Build Coastguard Worker  // Output only. The most recent time at which the issue model was updated.
716*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 4
717*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
718*d5c09012SAndroid Build Coastguard Worker
719*d5c09012SAndroid Build Coastguard Worker  // Output only. Number of issues in this issue model.
720*d5c09012SAndroid Build Coastguard Worker  int64 issue_count = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
721*d5c09012SAndroid Build Coastguard Worker
722*d5c09012SAndroid Build Coastguard Worker  // Output only. State of the model.
723*d5c09012SAndroid Build Coastguard Worker  State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
724*d5c09012SAndroid Build Coastguard Worker
725*d5c09012SAndroid Build Coastguard Worker  // Configs for the input data that used to create the issue model.
726*d5c09012SAndroid Build Coastguard Worker  InputDataConfig input_data_config = 6;
727*d5c09012SAndroid Build Coastguard Worker
728*d5c09012SAndroid Build Coastguard Worker  // Output only. Immutable. The issue model's label statistics on its training
729*d5c09012SAndroid Build Coastguard Worker  // data.
730*d5c09012SAndroid Build Coastguard Worker  IssueModelLabelStats training_stats = 7 [
731*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
732*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
733*d5c09012SAndroid Build Coastguard Worker  ];
734*d5c09012SAndroid Build Coastguard Worker
735*d5c09012SAndroid Build Coastguard Worker  // Type of the model.
736*d5c09012SAndroid Build Coastguard Worker  ModelType model_type = 9;
737*d5c09012SAndroid Build Coastguard Worker
738*d5c09012SAndroid Build Coastguard Worker  // Language of the model.
739*d5c09012SAndroid Build Coastguard Worker  string language_code = 10;
740*d5c09012SAndroid Build Coastguard Worker}
741*d5c09012SAndroid Build Coastguard Worker
742*d5c09012SAndroid Build Coastguard Worker// The issue resource.
743*d5c09012SAndroid Build Coastguard Workermessage Issue {
744*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
745*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/Issue"
746*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue}"
747*d5c09012SAndroid Build Coastguard Worker  };
748*d5c09012SAndroid Build Coastguard Worker
749*d5c09012SAndroid Build Coastguard Worker  // Immutable. The resource name of the issue.
750*d5c09012SAndroid Build Coastguard Worker  // Format:
751*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue}
752*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IMMUTABLE];
753*d5c09012SAndroid Build Coastguard Worker
754*d5c09012SAndroid Build Coastguard Worker  // The representative name for the issue.
755*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
756*d5c09012SAndroid Build Coastguard Worker
757*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which this issue was created.
758*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
759*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
760*d5c09012SAndroid Build Coastguard Worker
761*d5c09012SAndroid Build Coastguard Worker  // Output only. The most recent time that this issue was updated.
762*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 4
763*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
764*d5c09012SAndroid Build Coastguard Worker
765*d5c09012SAndroid Build Coastguard Worker  // Output only. Resource names of the sample representative utterances that
766*d5c09012SAndroid Build Coastguard Worker  // match to this issue.
767*d5c09012SAndroid Build Coastguard Worker  repeated string sample_utterances = 6
768*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
769*d5c09012SAndroid Build Coastguard Worker}
770*d5c09012SAndroid Build Coastguard Worker
771*d5c09012SAndroid Build Coastguard Worker// Aggregated statistics about an issue model.
772*d5c09012SAndroid Build Coastguard Workermessage IssueModelLabelStats {
773*d5c09012SAndroid Build Coastguard Worker  // Aggregated statistics about an issue.
774*d5c09012SAndroid Build Coastguard Worker  message IssueStats {
775*d5c09012SAndroid Build Coastguard Worker    // Issue resource.
776*d5c09012SAndroid Build Coastguard Worker    // Format:
777*d5c09012SAndroid Build Coastguard Worker    // projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue}
778*d5c09012SAndroid Build Coastguard Worker    string issue = 1;
779*d5c09012SAndroid Build Coastguard Worker
780*d5c09012SAndroid Build Coastguard Worker    // Number of conversations attached to the issue at this point in time.
781*d5c09012SAndroid Build Coastguard Worker    int64 labeled_conversations_count = 2;
782*d5c09012SAndroid Build Coastguard Worker
783*d5c09012SAndroid Build Coastguard Worker    // Display name of the issue.
784*d5c09012SAndroid Build Coastguard Worker    string display_name = 3;
785*d5c09012SAndroid Build Coastguard Worker  }
786*d5c09012SAndroid Build Coastguard Worker
787*d5c09012SAndroid Build Coastguard Worker  // Number of conversations the issue model has analyzed at this point in time.
788*d5c09012SAndroid Build Coastguard Worker  int64 analyzed_conversations_count = 1;
789*d5c09012SAndroid Build Coastguard Worker
790*d5c09012SAndroid Build Coastguard Worker  // Number of analyzed conversations for which no issue was applicable at this
791*d5c09012SAndroid Build Coastguard Worker  // point in time.
792*d5c09012SAndroid Build Coastguard Worker  int64 unclassified_conversations_count = 2;
793*d5c09012SAndroid Build Coastguard Worker
794*d5c09012SAndroid Build Coastguard Worker  // Statistics on each issue. Key is the issue's resource name.
795*d5c09012SAndroid Build Coastguard Worker  map<string, IssueStats> issue_stats = 3;
796*d5c09012SAndroid Build Coastguard Worker}
797*d5c09012SAndroid Build Coastguard Worker
798*d5c09012SAndroid Build Coastguard Worker// The phrase matcher resource.
799*d5c09012SAndroid Build Coastguard Workermessage PhraseMatcher {
800*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
801*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/PhraseMatcher"
802*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}"
803*d5c09012SAndroid Build Coastguard Worker  };
804*d5c09012SAndroid Build Coastguard Worker
805*d5c09012SAndroid Build Coastguard Worker  // Specifies how to combine each phrase match rule group to determine whether
806*d5c09012SAndroid Build Coastguard Worker  // there is a match.
807*d5c09012SAndroid Build Coastguard Worker  enum PhraseMatcherType {
808*d5c09012SAndroid Build Coastguard Worker    // Unspecified.
809*d5c09012SAndroid Build Coastguard Worker    PHRASE_MATCHER_TYPE_UNSPECIFIED = 0;
810*d5c09012SAndroid Build Coastguard Worker
811*d5c09012SAndroid Build Coastguard Worker    // Must meet all phrase match rule groups or there is no match.
812*d5c09012SAndroid Build Coastguard Worker    ALL_OF = 1;
813*d5c09012SAndroid Build Coastguard Worker
814*d5c09012SAndroid Build Coastguard Worker    // If any of the phrase match rule groups are met, there is a match.
815*d5c09012SAndroid Build Coastguard Worker    ANY_OF = 2;
816*d5c09012SAndroid Build Coastguard Worker  }
817*d5c09012SAndroid Build Coastguard Worker
818*d5c09012SAndroid Build Coastguard Worker  // The resource name of the phrase matcher.
819*d5c09012SAndroid Build Coastguard Worker  // Format:
820*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
821*d5c09012SAndroid Build Coastguard Worker  string name = 1;
822*d5c09012SAndroid Build Coastguard Worker
823*d5c09012SAndroid Build Coastguard Worker  // Output only. Immutable. The revision ID of the phrase matcher.
824*d5c09012SAndroid Build Coastguard Worker  // A new revision is committed whenever the matcher is changed, except when it
825*d5c09012SAndroid Build Coastguard Worker  // is activated or deactivated. A server generated random ID will be used.
826*d5c09012SAndroid Build Coastguard Worker  // Example: locations/global/phraseMatchers/my-first-matcher@1234567
827*d5c09012SAndroid Build Coastguard Worker  string revision_id = 2 [
828*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE,
829*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY
830*d5c09012SAndroid Build Coastguard Worker  ];
831*d5c09012SAndroid Build Coastguard Worker
832*d5c09012SAndroid Build Coastguard Worker  // The customized version tag to use for the phrase matcher. If not specified,
833*d5c09012SAndroid Build Coastguard Worker  // it will default to `revision_id`.
834*d5c09012SAndroid Build Coastguard Worker  string version_tag = 3;
835*d5c09012SAndroid Build Coastguard Worker
836*d5c09012SAndroid Build Coastguard Worker  // Output only. The timestamp of when the revision was created. It is also the
837*d5c09012SAndroid Build Coastguard Worker  // create time when a new matcher is added.
838*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp revision_create_time = 4
839*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
840*d5c09012SAndroid Build Coastguard Worker
841*d5c09012SAndroid Build Coastguard Worker  // The human-readable name of the phrase matcher.
842*d5c09012SAndroid Build Coastguard Worker  string display_name = 5;
843*d5c09012SAndroid Build Coastguard Worker
844*d5c09012SAndroid Build Coastguard Worker  // Required. The type of this phrase matcher.
845*d5c09012SAndroid Build Coastguard Worker  PhraseMatcherType type = 6 [(google.api.field_behavior) = REQUIRED];
846*d5c09012SAndroid Build Coastguard Worker
847*d5c09012SAndroid Build Coastguard Worker  // Applies the phrase matcher only when it is active.
848*d5c09012SAndroid Build Coastguard Worker  bool active = 7;
849*d5c09012SAndroid Build Coastguard Worker
850*d5c09012SAndroid Build Coastguard Worker  // A list of phase match rule groups that are included in this matcher.
851*d5c09012SAndroid Build Coastguard Worker  repeated PhraseMatchRuleGroup phrase_match_rule_groups = 8;
852*d5c09012SAndroid Build Coastguard Worker
853*d5c09012SAndroid Build Coastguard Worker  // Output only. The most recent time at which the activation status was
854*d5c09012SAndroid Build Coastguard Worker  // updated.
855*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp activation_update_time = 9
856*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
857*d5c09012SAndroid Build Coastguard Worker
858*d5c09012SAndroid Build Coastguard Worker  // The role whose utterances the phrase matcher should be matched
859*d5c09012SAndroid Build Coastguard Worker  // against. If the role is ROLE_UNSPECIFIED it will be matched against any
860*d5c09012SAndroid Build Coastguard Worker  // utterances in the transcript.
861*d5c09012SAndroid Build Coastguard Worker  ConversationParticipant.Role role_match = 10;
862*d5c09012SAndroid Build Coastguard Worker
863*d5c09012SAndroid Build Coastguard Worker  // Output only. The most recent time at which the phrase matcher was updated.
864*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 11
865*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
866*d5c09012SAndroid Build Coastguard Worker}
867*d5c09012SAndroid Build Coastguard Worker
868*d5c09012SAndroid Build Coastguard Worker// A message representing a rule in the phrase matcher.
869*d5c09012SAndroid Build Coastguard Workermessage PhraseMatchRuleGroup {
870*d5c09012SAndroid Build Coastguard Worker  // Specifies how to combine each phrase match rule for whether there is a
871*d5c09012SAndroid Build Coastguard Worker  // match.
872*d5c09012SAndroid Build Coastguard Worker  enum PhraseMatchRuleGroupType {
873*d5c09012SAndroid Build Coastguard Worker    // Unspecified.
874*d5c09012SAndroid Build Coastguard Worker    PHRASE_MATCH_RULE_GROUP_TYPE_UNSPECIFIED = 0;
875*d5c09012SAndroid Build Coastguard Worker
876*d5c09012SAndroid Build Coastguard Worker    // Must meet all phrase match rules or there is no match.
877*d5c09012SAndroid Build Coastguard Worker    ALL_OF = 1;
878*d5c09012SAndroid Build Coastguard Worker
879*d5c09012SAndroid Build Coastguard Worker    // If any of the phrase match rules are met, there is a match.
880*d5c09012SAndroid Build Coastguard Worker    ANY_OF = 2;
881*d5c09012SAndroid Build Coastguard Worker  }
882*d5c09012SAndroid Build Coastguard Worker
883*d5c09012SAndroid Build Coastguard Worker  // Required. The type of this phrase match rule group.
884*d5c09012SAndroid Build Coastguard Worker  PhraseMatchRuleGroupType type = 1 [(google.api.field_behavior) = REQUIRED];
885*d5c09012SAndroid Build Coastguard Worker
886*d5c09012SAndroid Build Coastguard Worker  // A list of phrase match rules that are included in this group.
887*d5c09012SAndroid Build Coastguard Worker  repeated PhraseMatchRule phrase_match_rules = 2;
888*d5c09012SAndroid Build Coastguard Worker}
889*d5c09012SAndroid Build Coastguard Worker
890*d5c09012SAndroid Build Coastguard Worker// The data for a phrase match rule.
891*d5c09012SAndroid Build Coastguard Workermessage PhraseMatchRule {
892*d5c09012SAndroid Build Coastguard Worker  // Required. The phrase to be matched.
893*d5c09012SAndroid Build Coastguard Worker  string query = 1 [(google.api.field_behavior) = REQUIRED];
894*d5c09012SAndroid Build Coastguard Worker
895*d5c09012SAndroid Build Coastguard Worker  // Specifies whether the phrase must be missing from the transcript segment or
896*d5c09012SAndroid Build Coastguard Worker  // present in the transcript segment.
897*d5c09012SAndroid Build Coastguard Worker  bool negated = 2;
898*d5c09012SAndroid Build Coastguard Worker
899*d5c09012SAndroid Build Coastguard Worker  // Provides additional information about the rule that specifies how to apply
900*d5c09012SAndroid Build Coastguard Worker  // the rule.
901*d5c09012SAndroid Build Coastguard Worker  PhraseMatchRuleConfig config = 3;
902*d5c09012SAndroid Build Coastguard Worker}
903*d5c09012SAndroid Build Coastguard Worker
904*d5c09012SAndroid Build Coastguard Worker// Configuration information of a phrase match rule.
905*d5c09012SAndroid Build Coastguard Workermessage PhraseMatchRuleConfig {
906*d5c09012SAndroid Build Coastguard Worker  // The configuration of the phrase match rule.
907*d5c09012SAndroid Build Coastguard Worker  oneof config {
908*d5c09012SAndroid Build Coastguard Worker    // The configuration for the exact match rule.
909*d5c09012SAndroid Build Coastguard Worker    ExactMatchConfig exact_match_config = 1;
910*d5c09012SAndroid Build Coastguard Worker  }
911*d5c09012SAndroid Build Coastguard Worker}
912*d5c09012SAndroid Build Coastguard Worker
913*d5c09012SAndroid Build Coastguard Worker// Exact match configuration.
914*d5c09012SAndroid Build Coastguard Workermessage ExactMatchConfig {
915*d5c09012SAndroid Build Coastguard Worker  // Whether to consider case sensitivity when performing an exact match.
916*d5c09012SAndroid Build Coastguard Worker  bool case_sensitive = 1;
917*d5c09012SAndroid Build Coastguard Worker}
918*d5c09012SAndroid Build Coastguard Worker
919*d5c09012SAndroid Build Coastguard Worker// The settings resource.
920*d5c09012SAndroid Build Coastguard Workermessage Settings {
921*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
922*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/Settings"
923*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/settings"
924*d5c09012SAndroid Build Coastguard Worker  };
925*d5c09012SAndroid Build Coastguard Worker
926*d5c09012SAndroid Build Coastguard Worker  // Default configuration when creating Analyses in Insights.
927*d5c09012SAndroid Build Coastguard Worker  message AnalysisConfig {
928*d5c09012SAndroid Build Coastguard Worker    // Percentage of conversations created using Dialogflow runtime integration
929*d5c09012SAndroid Build Coastguard Worker    // to analyze automatically, between [0, 100].
930*d5c09012SAndroid Build Coastguard Worker    double runtime_integration_analysis_percentage = 1;
931*d5c09012SAndroid Build Coastguard Worker
932*d5c09012SAndroid Build Coastguard Worker    // Percentage of conversations created using the UploadConversation endpoint
933*d5c09012SAndroid Build Coastguard Worker    // to analyze automatically, between [0, 100].
934*d5c09012SAndroid Build Coastguard Worker    double upload_conversation_analysis_percentage = 6;
935*d5c09012SAndroid Build Coastguard Worker
936*d5c09012SAndroid Build Coastguard Worker    // To select the annotators to run and the phrase matchers to use
937*d5c09012SAndroid Build Coastguard Worker    // (if any). If not specified, all annotators will be run.
938*d5c09012SAndroid Build Coastguard Worker    AnnotatorSelector annotator_selector = 5;
939*d5c09012SAndroid Build Coastguard Worker  }
940*d5c09012SAndroid Build Coastguard Worker
941*d5c09012SAndroid Build Coastguard Worker  // Immutable. The resource name of the settings resource.
942*d5c09012SAndroid Build Coastguard Worker  // Format:
943*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/settings
944*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IMMUTABLE];
945*d5c09012SAndroid Build Coastguard Worker
946*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which the settings was created.
947*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 2
948*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
949*d5c09012SAndroid Build Coastguard Worker
950*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which the settings were last updated.
951*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 3
952*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
953*d5c09012SAndroid Build Coastguard Worker
954*d5c09012SAndroid Build Coastguard Worker  // A language code to be applied to each transcript segment unless the segment
955*d5c09012SAndroid Build Coastguard Worker  // already specifies a language code. Language code defaults to "en-US" if it
956*d5c09012SAndroid Build Coastguard Worker  // is neither specified on the segment nor here.
957*d5c09012SAndroid Build Coastguard Worker  string language_code = 4;
958*d5c09012SAndroid Build Coastguard Worker
959*d5c09012SAndroid Build Coastguard Worker  // The default TTL for newly-created conversations. If a conversation has a
960*d5c09012SAndroid Build Coastguard Worker  // specified expiration, that value will be used instead. Changing this
961*d5c09012SAndroid Build Coastguard Worker  // value will not change the expiration of existing conversations.
962*d5c09012SAndroid Build Coastguard Worker  // Conversations with no expire time persist until they are deleted.
963*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration conversation_ttl = 5;
964*d5c09012SAndroid Build Coastguard Worker
965*d5c09012SAndroid Build Coastguard Worker  // A map that maps a notification trigger to a Pub/Sub topic. Each time a
966*d5c09012SAndroid Build Coastguard Worker  // specified trigger occurs, Insights will notify the corresponding Pub/Sub
967*d5c09012SAndroid Build Coastguard Worker  // topic.
968*d5c09012SAndroid Build Coastguard Worker  //
969*d5c09012SAndroid Build Coastguard Worker  // Keys are notification triggers. Supported keys are:
970*d5c09012SAndroid Build Coastguard Worker  //
971*d5c09012SAndroid Build Coastguard Worker  // * "all-triggers": Notify each time any of the supported triggers occurs.
972*d5c09012SAndroid Build Coastguard Worker  // * "create-analysis": Notify each time an analysis is created.
973*d5c09012SAndroid Build Coastguard Worker  // * "create-conversation": Notify each time a conversation is created.
974*d5c09012SAndroid Build Coastguard Worker  // * "export-insights-data": Notify each time an export is complete.
975*d5c09012SAndroid Build Coastguard Worker  // * "update-conversation": Notify each time a conversation is updated via
976*d5c09012SAndroid Build Coastguard Worker  // UpdateConversation.
977*d5c09012SAndroid Build Coastguard Worker  //
978*d5c09012SAndroid Build Coastguard Worker  // Values are Pub/Sub topics. The format of each Pub/Sub topic is:
979*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/topics/{topic}
980*d5c09012SAndroid Build Coastguard Worker  map<string, string> pubsub_notification_settings = 6;
981*d5c09012SAndroid Build Coastguard Worker
982*d5c09012SAndroid Build Coastguard Worker  // Default analysis settings.
983*d5c09012SAndroid Build Coastguard Worker  AnalysisConfig analysis_config = 7;
984*d5c09012SAndroid Build Coastguard Worker
985*d5c09012SAndroid Build Coastguard Worker  // Default DLP redaction resources to be applied while ingesting
986*d5c09012SAndroid Build Coastguard Worker  // conversations.
987*d5c09012SAndroid Build Coastguard Worker  RedactionConfig redaction_config = 10;
988*d5c09012SAndroid Build Coastguard Worker
989*d5c09012SAndroid Build Coastguard Worker  // Optional. Default Speech-to-Text resources to be used while ingesting audio
990*d5c09012SAndroid Build Coastguard Worker  // files. Optional, CCAI Insights will create a default if not provided.
991*d5c09012SAndroid Build Coastguard Worker  SpeechConfig speech_config = 11 [(google.api.field_behavior) = OPTIONAL];
992*d5c09012SAndroid Build Coastguard Worker}
993*d5c09012SAndroid Build Coastguard Worker
994*d5c09012SAndroid Build Coastguard Worker// DLP resources used for redaction while ingesting conversations.
995*d5c09012SAndroid Build Coastguard Workermessage RedactionConfig {
996*d5c09012SAndroid Build Coastguard Worker  // The fully-qualified DLP deidentify template resource name.
997*d5c09012SAndroid Build Coastguard Worker  // Format:
998*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/deidentifyTemplates/{template}`
999*d5c09012SAndroid Build Coastguard Worker  string deidentify_template = 1;
1000*d5c09012SAndroid Build Coastguard Worker
1001*d5c09012SAndroid Build Coastguard Worker  // The fully-qualified DLP inspect template resource name.
1002*d5c09012SAndroid Build Coastguard Worker  // Format:
1003*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/inspectTemplates/{template}`
1004*d5c09012SAndroid Build Coastguard Worker  string inspect_template = 2;
1005*d5c09012SAndroid Build Coastguard Worker}
1006*d5c09012SAndroid Build Coastguard Worker
1007*d5c09012SAndroid Build Coastguard Worker// Speech-to-Text configuration.
1008*d5c09012SAndroid Build Coastguard Workermessage SpeechConfig {
1009*d5c09012SAndroid Build Coastguard Worker  // The fully-qualified Speech Recognizer resource name.
1010*d5c09012SAndroid Build Coastguard Worker  // Format:
1011*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_id}/locations/{location}/recognizer/{recognizer}`
1012*d5c09012SAndroid Build Coastguard Worker  string speech_recognizer = 1 [(google.api.resource_reference) = {
1013*d5c09012SAndroid Build Coastguard Worker    type: "speech.googleapis.com/Recognizer"
1014*d5c09012SAndroid Build Coastguard Worker  }];
1015*d5c09012SAndroid Build Coastguard Worker}
1016*d5c09012SAndroid Build Coastguard Worker
1017*d5c09012SAndroid Build Coastguard Worker// An annotation that was generated during the customer and agent interaction.
1018*d5c09012SAndroid Build Coastguard Workermessage RuntimeAnnotation {
1019*d5c09012SAndroid Build Coastguard Worker  // The data in the annotation.
1020*d5c09012SAndroid Build Coastguard Worker  oneof data {
1021*d5c09012SAndroid Build Coastguard Worker    // Agent Assist Article Suggestion data.
1022*d5c09012SAndroid Build Coastguard Worker    ArticleSuggestionData article_suggestion = 6;
1023*d5c09012SAndroid Build Coastguard Worker
1024*d5c09012SAndroid Build Coastguard Worker    // Agent Assist FAQ answer data.
1025*d5c09012SAndroid Build Coastguard Worker    FaqAnswerData faq_answer = 7;
1026*d5c09012SAndroid Build Coastguard Worker
1027*d5c09012SAndroid Build Coastguard Worker    // Agent Assist Smart Reply data.
1028*d5c09012SAndroid Build Coastguard Worker    SmartReplyData smart_reply = 8;
1029*d5c09012SAndroid Build Coastguard Worker
1030*d5c09012SAndroid Build Coastguard Worker    // Agent Assist Smart Compose suggestion data.
1031*d5c09012SAndroid Build Coastguard Worker    SmartComposeSuggestionData smart_compose_suggestion = 9;
1032*d5c09012SAndroid Build Coastguard Worker
1033*d5c09012SAndroid Build Coastguard Worker    // Dialogflow interaction data.
1034*d5c09012SAndroid Build Coastguard Worker    DialogflowInteractionData dialogflow_interaction = 10;
1035*d5c09012SAndroid Build Coastguard Worker
1036*d5c09012SAndroid Build Coastguard Worker    // Conversation summarization suggestion data.
1037*d5c09012SAndroid Build Coastguard Worker    ConversationSummarizationSuggestionData
1038*d5c09012SAndroid Build Coastguard Worker        conversation_summarization_suggestion = 12;
1039*d5c09012SAndroid Build Coastguard Worker  }
1040*d5c09012SAndroid Build Coastguard Worker
1041*d5c09012SAndroid Build Coastguard Worker  // The unique identifier of the annotation.
1042*d5c09012SAndroid Build Coastguard Worker  // Format:
1043*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/conversationDatasets/{dataset}/conversationDataItems/{data_item}/conversationAnnotations/{annotation}
1044*d5c09012SAndroid Build Coastguard Worker  string annotation_id = 1;
1045*d5c09012SAndroid Build Coastguard Worker
1046*d5c09012SAndroid Build Coastguard Worker  // The time at which this annotation was created.
1047*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 2;
1048*d5c09012SAndroid Build Coastguard Worker
1049*d5c09012SAndroid Build Coastguard Worker  // The boundary in the conversation where the annotation starts, inclusive.
1050*d5c09012SAndroid Build Coastguard Worker  AnnotationBoundary start_boundary = 3;
1051*d5c09012SAndroid Build Coastguard Worker
1052*d5c09012SAndroid Build Coastguard Worker  // The boundary in the conversation where the annotation ends, inclusive.
1053*d5c09012SAndroid Build Coastguard Worker  AnnotationBoundary end_boundary = 4;
1054*d5c09012SAndroid Build Coastguard Worker
1055*d5c09012SAndroid Build Coastguard Worker  // The feedback that the customer has about the answer in `data`.
1056*d5c09012SAndroid Build Coastguard Worker  AnswerFeedback answer_feedback = 5;
1057*d5c09012SAndroid Build Coastguard Worker}
1058*d5c09012SAndroid Build Coastguard Worker
1059*d5c09012SAndroid Build Coastguard Worker// The feedback that the customer has about a certain answer in the
1060*d5c09012SAndroid Build Coastguard Worker// conversation.
1061*d5c09012SAndroid Build Coastguard Workermessage AnswerFeedback {
1062*d5c09012SAndroid Build Coastguard Worker  // The correctness level of an answer.
1063*d5c09012SAndroid Build Coastguard Worker  enum CorrectnessLevel {
1064*d5c09012SAndroid Build Coastguard Worker    // Correctness level unspecified.
1065*d5c09012SAndroid Build Coastguard Worker    CORRECTNESS_LEVEL_UNSPECIFIED = 0;
1066*d5c09012SAndroid Build Coastguard Worker
1067*d5c09012SAndroid Build Coastguard Worker    // Answer is totally wrong.
1068*d5c09012SAndroid Build Coastguard Worker    NOT_CORRECT = 1;
1069*d5c09012SAndroid Build Coastguard Worker
1070*d5c09012SAndroid Build Coastguard Worker    // Answer is partially correct.
1071*d5c09012SAndroid Build Coastguard Worker    PARTIALLY_CORRECT = 2;
1072*d5c09012SAndroid Build Coastguard Worker
1073*d5c09012SAndroid Build Coastguard Worker    // Answer is fully correct.
1074*d5c09012SAndroid Build Coastguard Worker    FULLY_CORRECT = 3;
1075*d5c09012SAndroid Build Coastguard Worker  }
1076*d5c09012SAndroid Build Coastguard Worker
1077*d5c09012SAndroid Build Coastguard Worker  // The correctness level of an answer.
1078*d5c09012SAndroid Build Coastguard Worker  CorrectnessLevel correctness_level = 1;
1079*d5c09012SAndroid Build Coastguard Worker
1080*d5c09012SAndroid Build Coastguard Worker  // Indicates whether an answer or item was clicked by the human agent.
1081*d5c09012SAndroid Build Coastguard Worker  bool clicked = 2;
1082*d5c09012SAndroid Build Coastguard Worker
1083*d5c09012SAndroid Build Coastguard Worker  // Indicates whether an answer or item was displayed to the human agent in the
1084*d5c09012SAndroid Build Coastguard Worker  // agent desktop UI.
1085*d5c09012SAndroid Build Coastguard Worker  bool displayed = 3;
1086*d5c09012SAndroid Build Coastguard Worker}
1087*d5c09012SAndroid Build Coastguard Worker
1088*d5c09012SAndroid Build Coastguard Worker// Agent Assist Article Suggestion data.
1089*d5c09012SAndroid Build Coastguard Workermessage ArticleSuggestionData {
1090*d5c09012SAndroid Build Coastguard Worker  // Article title.
1091*d5c09012SAndroid Build Coastguard Worker  string title = 1;
1092*d5c09012SAndroid Build Coastguard Worker
1093*d5c09012SAndroid Build Coastguard Worker  // Article URI.
1094*d5c09012SAndroid Build Coastguard Worker  string uri = 2;
1095*d5c09012SAndroid Build Coastguard Worker
1096*d5c09012SAndroid Build Coastguard Worker  // The system's confidence score that this article is a good match for this
1097*d5c09012SAndroid Build Coastguard Worker  // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely
1098*d5c09012SAndroid Build Coastguard Worker  // certain).
1099*d5c09012SAndroid Build Coastguard Worker  float confidence_score = 3;
1100*d5c09012SAndroid Build Coastguard Worker
1101*d5c09012SAndroid Build Coastguard Worker  // Map that contains metadata about the Article Suggestion and the document
1102*d5c09012SAndroid Build Coastguard Worker  // that it originates from.
1103*d5c09012SAndroid Build Coastguard Worker  map<string, string> metadata = 4;
1104*d5c09012SAndroid Build Coastguard Worker
1105*d5c09012SAndroid Build Coastguard Worker  // The name of the answer record.
1106*d5c09012SAndroid Build Coastguard Worker  // Format:
1107*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/answerRecords/{answer_record}
1108*d5c09012SAndroid Build Coastguard Worker  string query_record = 5;
1109*d5c09012SAndroid Build Coastguard Worker
1110*d5c09012SAndroid Build Coastguard Worker  // The knowledge document that this answer was extracted from.
1111*d5c09012SAndroid Build Coastguard Worker  // Format:
1112*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}
1113*d5c09012SAndroid Build Coastguard Worker  string source = 6;
1114*d5c09012SAndroid Build Coastguard Worker}
1115*d5c09012SAndroid Build Coastguard Worker
1116*d5c09012SAndroid Build Coastguard Worker// Agent Assist frequently-asked-question answer data.
1117*d5c09012SAndroid Build Coastguard Workermessage FaqAnswerData {
1118*d5c09012SAndroid Build Coastguard Worker  // The piece of text from the `source` knowledge base document.
1119*d5c09012SAndroid Build Coastguard Worker  string answer = 1;
1120*d5c09012SAndroid Build Coastguard Worker
1121*d5c09012SAndroid Build Coastguard Worker  // The system's confidence score that this answer is a good match for this
1122*d5c09012SAndroid Build Coastguard Worker  // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely
1123*d5c09012SAndroid Build Coastguard Worker  // certain).
1124*d5c09012SAndroid Build Coastguard Worker  float confidence_score = 2;
1125*d5c09012SAndroid Build Coastguard Worker
1126*d5c09012SAndroid Build Coastguard Worker  // The corresponding FAQ question.
1127*d5c09012SAndroid Build Coastguard Worker  string question = 3;
1128*d5c09012SAndroid Build Coastguard Worker
1129*d5c09012SAndroid Build Coastguard Worker  // Map that contains metadata about the FAQ answer and the document that
1130*d5c09012SAndroid Build Coastguard Worker  // it originates from.
1131*d5c09012SAndroid Build Coastguard Worker  map<string, string> metadata = 4;
1132*d5c09012SAndroid Build Coastguard Worker
1133*d5c09012SAndroid Build Coastguard Worker  // The name of the answer record.
1134*d5c09012SAndroid Build Coastguard Worker  // Format:
1135*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/answerRecords/{answer_record}
1136*d5c09012SAndroid Build Coastguard Worker  string query_record = 5;
1137*d5c09012SAndroid Build Coastguard Worker
1138*d5c09012SAndroid Build Coastguard Worker  // The knowledge document that this answer was extracted from.
1139*d5c09012SAndroid Build Coastguard Worker  // Format:
1140*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}.
1141*d5c09012SAndroid Build Coastguard Worker  string source = 6;
1142*d5c09012SAndroid Build Coastguard Worker}
1143*d5c09012SAndroid Build Coastguard Worker
1144*d5c09012SAndroid Build Coastguard Worker// Agent Assist Smart Reply data.
1145*d5c09012SAndroid Build Coastguard Workermessage SmartReplyData {
1146*d5c09012SAndroid Build Coastguard Worker  // The content of the reply.
1147*d5c09012SAndroid Build Coastguard Worker  string reply = 1;
1148*d5c09012SAndroid Build Coastguard Worker
1149*d5c09012SAndroid Build Coastguard Worker  // The system's confidence score that this reply is a good match for this
1150*d5c09012SAndroid Build Coastguard Worker  // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely
1151*d5c09012SAndroid Build Coastguard Worker  // certain).
1152*d5c09012SAndroid Build Coastguard Worker  double confidence_score = 2;
1153*d5c09012SAndroid Build Coastguard Worker
1154*d5c09012SAndroid Build Coastguard Worker  // Map that contains metadata about the Smart Reply and the document from
1155*d5c09012SAndroid Build Coastguard Worker  // which it originates.
1156*d5c09012SAndroid Build Coastguard Worker  map<string, string> metadata = 3;
1157*d5c09012SAndroid Build Coastguard Worker
1158*d5c09012SAndroid Build Coastguard Worker  // The name of the answer record.
1159*d5c09012SAndroid Build Coastguard Worker  // Format:
1160*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/answerRecords/{answer_record}
1161*d5c09012SAndroid Build Coastguard Worker  string query_record = 4;
1162*d5c09012SAndroid Build Coastguard Worker}
1163*d5c09012SAndroid Build Coastguard Worker
1164*d5c09012SAndroid Build Coastguard Worker// Agent Assist Smart Compose suggestion data.
1165*d5c09012SAndroid Build Coastguard Workermessage SmartComposeSuggestionData {
1166*d5c09012SAndroid Build Coastguard Worker  // The content of the suggestion.
1167*d5c09012SAndroid Build Coastguard Worker  string suggestion = 1;
1168*d5c09012SAndroid Build Coastguard Worker
1169*d5c09012SAndroid Build Coastguard Worker  // The system's confidence score that this suggestion is a good match for this
1170*d5c09012SAndroid Build Coastguard Worker  // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely
1171*d5c09012SAndroid Build Coastguard Worker  // certain).
1172*d5c09012SAndroid Build Coastguard Worker  double confidence_score = 2;
1173*d5c09012SAndroid Build Coastguard Worker
1174*d5c09012SAndroid Build Coastguard Worker  // Map that contains metadata about the Smart Compose suggestion and the
1175*d5c09012SAndroid Build Coastguard Worker  // document from which it originates.
1176*d5c09012SAndroid Build Coastguard Worker  map<string, string> metadata = 3;
1177*d5c09012SAndroid Build Coastguard Worker
1178*d5c09012SAndroid Build Coastguard Worker  // The name of the answer record.
1179*d5c09012SAndroid Build Coastguard Worker  // Format:
1180*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/answerRecords/{answer_record}
1181*d5c09012SAndroid Build Coastguard Worker  string query_record = 4;
1182*d5c09012SAndroid Build Coastguard Worker}
1183*d5c09012SAndroid Build Coastguard Worker
1184*d5c09012SAndroid Build Coastguard Worker// Dialogflow interaction data.
1185*d5c09012SAndroid Build Coastguard Workermessage DialogflowInteractionData {
1186*d5c09012SAndroid Build Coastguard Worker  // The Dialogflow intent resource path. Format:
1187*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/agent/{agent}/intents/{intent}
1188*d5c09012SAndroid Build Coastguard Worker  string dialogflow_intent_id = 1;
1189*d5c09012SAndroid Build Coastguard Worker
1190*d5c09012SAndroid Build Coastguard Worker  // The confidence of the match ranging from 0.0 (completely uncertain) to 1.0
1191*d5c09012SAndroid Build Coastguard Worker  // (completely certain).
1192*d5c09012SAndroid Build Coastguard Worker  float confidence = 2;
1193*d5c09012SAndroid Build Coastguard Worker}
1194*d5c09012SAndroid Build Coastguard Worker
1195*d5c09012SAndroid Build Coastguard Worker// Conversation summarization suggestion data.
1196*d5c09012SAndroid Build Coastguard Workermessage ConversationSummarizationSuggestionData {
1197*d5c09012SAndroid Build Coastguard Worker  // The summarization content that is concatenated into one string.
1198*d5c09012SAndroid Build Coastguard Worker  string text = 1;
1199*d5c09012SAndroid Build Coastguard Worker
1200*d5c09012SAndroid Build Coastguard Worker  // The summarization content that is divided into sections. The key is the
1201*d5c09012SAndroid Build Coastguard Worker  // section's name and the value is the section's content. There is no
1202*d5c09012SAndroid Build Coastguard Worker  // specific format for the key or value.
1203*d5c09012SAndroid Build Coastguard Worker  map<string, string> text_sections = 5;
1204*d5c09012SAndroid Build Coastguard Worker
1205*d5c09012SAndroid Build Coastguard Worker  // The confidence score of the summarization.
1206*d5c09012SAndroid Build Coastguard Worker  float confidence = 2;
1207*d5c09012SAndroid Build Coastguard Worker
1208*d5c09012SAndroid Build Coastguard Worker  // A map that contains metadata about the summarization and the document
1209*d5c09012SAndroid Build Coastguard Worker  // from which it originates.
1210*d5c09012SAndroid Build Coastguard Worker  map<string, string> metadata = 3;
1211*d5c09012SAndroid Build Coastguard Worker
1212*d5c09012SAndroid Build Coastguard Worker  // The name of the answer record.
1213*d5c09012SAndroid Build Coastguard Worker  // Format:
1214*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/answerRecords/{answer_record}
1215*d5c09012SAndroid Build Coastguard Worker  string answer_record = 4;
1216*d5c09012SAndroid Build Coastguard Worker
1217*d5c09012SAndroid Build Coastguard Worker  // The name of the model that generates this summary.
1218*d5c09012SAndroid Build Coastguard Worker  // Format:
1219*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/conversationModels/{conversation_model}
1220*d5c09012SAndroid Build Coastguard Worker  string conversation_model = 6;
1221*d5c09012SAndroid Build Coastguard Worker}
1222*d5c09012SAndroid Build Coastguard Worker
1223*d5c09012SAndroid Build Coastguard Worker// The call participant speaking for a given utterance.
1224*d5c09012SAndroid Build Coastguard Workermessage ConversationParticipant {
1225*d5c09012SAndroid Build Coastguard Worker  // The role of the participant.
1226*d5c09012SAndroid Build Coastguard Worker  enum Role {
1227*d5c09012SAndroid Build Coastguard Worker    // Participant's role is not set.
1228*d5c09012SAndroid Build Coastguard Worker    ROLE_UNSPECIFIED = 0;
1229*d5c09012SAndroid Build Coastguard Worker
1230*d5c09012SAndroid Build Coastguard Worker    // Participant is a human agent.
1231*d5c09012SAndroid Build Coastguard Worker    HUMAN_AGENT = 1;
1232*d5c09012SAndroid Build Coastguard Worker
1233*d5c09012SAndroid Build Coastguard Worker    // Participant is an automated agent.
1234*d5c09012SAndroid Build Coastguard Worker    AUTOMATED_AGENT = 2;
1235*d5c09012SAndroid Build Coastguard Worker
1236*d5c09012SAndroid Build Coastguard Worker    // Participant is an end user who conversed with the contact center.
1237*d5c09012SAndroid Build Coastguard Worker    END_USER = 3;
1238*d5c09012SAndroid Build Coastguard Worker
1239*d5c09012SAndroid Build Coastguard Worker    // Participant is either a human or automated agent.
1240*d5c09012SAndroid Build Coastguard Worker    ANY_AGENT = 4;
1241*d5c09012SAndroid Build Coastguard Worker  }
1242*d5c09012SAndroid Build Coastguard Worker
1243*d5c09012SAndroid Build Coastguard Worker  oneof participant {
1244*d5c09012SAndroid Build Coastguard Worker    // The name of the participant provided by Dialogflow. Format:
1245*d5c09012SAndroid Build Coastguard Worker    // projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}
1246*d5c09012SAndroid Build Coastguard Worker    string dialogflow_participant_name = 5 [(google.api.resource_reference) = {
1247*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/Participant"
1248*d5c09012SAndroid Build Coastguard Worker    }];
1249*d5c09012SAndroid Build Coastguard Worker
1250*d5c09012SAndroid Build Coastguard Worker    // A user-specified ID representing the participant.
1251*d5c09012SAndroid Build Coastguard Worker    string user_id = 6;
1252*d5c09012SAndroid Build Coastguard Worker  }
1253*d5c09012SAndroid Build Coastguard Worker
1254*d5c09012SAndroid Build Coastguard Worker  // Deprecated. Use `dialogflow_participant_name` instead.
1255*d5c09012SAndroid Build Coastguard Worker  // The name of the Dialogflow participant. Format:
1256*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}
1257*d5c09012SAndroid Build Coastguard Worker  string dialogflow_participant = 1 [deprecated = true];
1258*d5c09012SAndroid Build Coastguard Worker
1259*d5c09012SAndroid Build Coastguard Worker  // Obfuscated user ID from Dialogflow.
1260*d5c09012SAndroid Build Coastguard Worker  string obfuscated_external_user_id = 3;
1261*d5c09012SAndroid Build Coastguard Worker
1262*d5c09012SAndroid Build Coastguard Worker  // The role of the participant.
1263*d5c09012SAndroid Build Coastguard Worker  Role role = 2;
1264*d5c09012SAndroid Build Coastguard Worker}
1265*d5c09012SAndroid Build Coastguard Worker
1266*d5c09012SAndroid Build Coastguard Worker// The View resource.
1267*d5c09012SAndroid Build Coastguard Workermessage View {
1268*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1269*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/View"
1270*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/views/{view}"
1271*d5c09012SAndroid Build Coastguard Worker  };
1272*d5c09012SAndroid Build Coastguard Worker
1273*d5c09012SAndroid Build Coastguard Worker  // Immutable. The resource name of the view.
1274*d5c09012SAndroid Build Coastguard Worker  // Format:
1275*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/views/{view}
1276*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IMMUTABLE];
1277*d5c09012SAndroid Build Coastguard Worker
1278*d5c09012SAndroid Build Coastguard Worker  // The human-readable display name of the view.
1279*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
1280*d5c09012SAndroid Build Coastguard Worker
1281*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which this view was created.
1282*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
1283*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1284*d5c09012SAndroid Build Coastguard Worker
1285*d5c09012SAndroid Build Coastguard Worker  // Output only. The most recent time at which the view was updated.
1286*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 4
1287*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1288*d5c09012SAndroid Build Coastguard Worker
1289*d5c09012SAndroid Build Coastguard Worker  // String with specific view properties, must be non-empty.
1290*d5c09012SAndroid Build Coastguard Worker  string value = 5;
1291*d5c09012SAndroid Build Coastguard Worker}
1292*d5c09012SAndroid Build Coastguard Worker
1293*d5c09012SAndroid Build Coastguard Worker// Selector of all available annotators and phrase matchers to run.
1294*d5c09012SAndroid Build Coastguard Workermessage AnnotatorSelector {
1295*d5c09012SAndroid Build Coastguard Worker  // Configuration for summarization.
1296*d5c09012SAndroid Build Coastguard Worker  message SummarizationConfig {
1297*d5c09012SAndroid Build Coastguard Worker    // Summarization model to use, if `conversation_profile` is not used.
1298*d5c09012SAndroid Build Coastguard Worker    enum SummarizationModel {
1299*d5c09012SAndroid Build Coastguard Worker      // Unspecified summarization model.
1300*d5c09012SAndroid Build Coastguard Worker      SUMMARIZATION_MODEL_UNSPECIFIED = 0;
1301*d5c09012SAndroid Build Coastguard Worker
1302*d5c09012SAndroid Build Coastguard Worker      // The CCAI baseline model.
1303*d5c09012SAndroid Build Coastguard Worker      BASELINE_MODEL = 1;
1304*d5c09012SAndroid Build Coastguard Worker    }
1305*d5c09012SAndroid Build Coastguard Worker
1306*d5c09012SAndroid Build Coastguard Worker    // Summarization must use either a preexisting conversation profile or one
1307*d5c09012SAndroid Build Coastguard Worker    // of the supported default models.
1308*d5c09012SAndroid Build Coastguard Worker    oneof model_source {
1309*d5c09012SAndroid Build Coastguard Worker      // Resource name of the Dialogflow conversation profile.
1310*d5c09012SAndroid Build Coastguard Worker      // Format:
1311*d5c09012SAndroid Build Coastguard Worker      // projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}
1312*d5c09012SAndroid Build Coastguard Worker      string conversation_profile = 1 [(google.api.resource_reference) = {
1313*d5c09012SAndroid Build Coastguard Worker        type: "dialogflow.googleapis.com/ConversationProfile"
1314*d5c09012SAndroid Build Coastguard Worker      }];
1315*d5c09012SAndroid Build Coastguard Worker
1316*d5c09012SAndroid Build Coastguard Worker      // Default summarization model to be used.
1317*d5c09012SAndroid Build Coastguard Worker      SummarizationModel summarization_model = 2;
1318*d5c09012SAndroid Build Coastguard Worker    }
1319*d5c09012SAndroid Build Coastguard Worker  }
1320*d5c09012SAndroid Build Coastguard Worker
1321*d5c09012SAndroid Build Coastguard Worker  // Whether to run the interruption annotator.
1322*d5c09012SAndroid Build Coastguard Worker  bool run_interruption_annotator = 1;
1323*d5c09012SAndroid Build Coastguard Worker
1324*d5c09012SAndroid Build Coastguard Worker  // Whether to run the silence annotator.
1325*d5c09012SAndroid Build Coastguard Worker  bool run_silence_annotator = 2;
1326*d5c09012SAndroid Build Coastguard Worker
1327*d5c09012SAndroid Build Coastguard Worker  // Whether to run the active phrase matcher annotator(s).
1328*d5c09012SAndroid Build Coastguard Worker  bool run_phrase_matcher_annotator = 3;
1329*d5c09012SAndroid Build Coastguard Worker
1330*d5c09012SAndroid Build Coastguard Worker  // The list of phrase matchers to run. If not provided, all active phrase
1331*d5c09012SAndroid Build Coastguard Worker  // matchers will be used. If inactive phrase matchers are provided, they will
1332*d5c09012SAndroid Build Coastguard Worker  // not be used. Phrase matchers will be run only if
1333*d5c09012SAndroid Build Coastguard Worker  // run_phrase_matcher_annotator is set to true. Format:
1334*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
1335*d5c09012SAndroid Build Coastguard Worker  repeated string phrase_matchers = 4 [(google.api.resource_reference) = {
1336*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/PhraseMatcher"
1337*d5c09012SAndroid Build Coastguard Worker  }];
1338*d5c09012SAndroid Build Coastguard Worker
1339*d5c09012SAndroid Build Coastguard Worker  // Whether to run the sentiment annotator.
1340*d5c09012SAndroid Build Coastguard Worker  bool run_sentiment_annotator = 5;
1341*d5c09012SAndroid Build Coastguard Worker
1342*d5c09012SAndroid Build Coastguard Worker  // Whether to run the entity annotator.
1343*d5c09012SAndroid Build Coastguard Worker  bool run_entity_annotator = 6;
1344*d5c09012SAndroid Build Coastguard Worker
1345*d5c09012SAndroid Build Coastguard Worker  // Whether to run the intent annotator.
1346*d5c09012SAndroid Build Coastguard Worker  bool run_intent_annotator = 7;
1347*d5c09012SAndroid Build Coastguard Worker
1348*d5c09012SAndroid Build Coastguard Worker  // Whether to run the issue model annotator. A model should have already been
1349*d5c09012SAndroid Build Coastguard Worker  // deployed for this to take effect.
1350*d5c09012SAndroid Build Coastguard Worker  bool run_issue_model_annotator = 8;
1351*d5c09012SAndroid Build Coastguard Worker
1352*d5c09012SAndroid Build Coastguard Worker  // The issue model to run. If not provided, the most recently deployed topic
1353*d5c09012SAndroid Build Coastguard Worker  // model will be used. The provided issue model will only be used for
1354*d5c09012SAndroid Build Coastguard Worker  // inference if the issue model is deployed and if run_issue_model_annotator
1355*d5c09012SAndroid Build Coastguard Worker  // is set to true. If more than one issue model is provided, only the first
1356*d5c09012SAndroid Build Coastguard Worker  // provided issue model will be used for inference.
1357*d5c09012SAndroid Build Coastguard Worker  repeated string issue_models = 10 [(google.api.resource_reference) = {
1358*d5c09012SAndroid Build Coastguard Worker    type: "contactcenterinsights.googleapis.com/IssueModel"
1359*d5c09012SAndroid Build Coastguard Worker  }];
1360*d5c09012SAndroid Build Coastguard Worker
1361*d5c09012SAndroid Build Coastguard Worker  // Whether to run the summarization annotator.
1362*d5c09012SAndroid Build Coastguard Worker  bool run_summarization_annotator = 9;
1363*d5c09012SAndroid Build Coastguard Worker
1364*d5c09012SAndroid Build Coastguard Worker  // Configuration for the summarization annotator.
1365*d5c09012SAndroid Build Coastguard Worker  SummarizationConfig summarization_config = 11;
1366*d5c09012SAndroid Build Coastguard Worker}
1367