This repository has been archived by the owner on Jul 20, 2023. It is now read-only.
/
contact_center_insights.proto
970 lines (825 loc) · 32.4 KB
/
contact_center_insights.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.contactcenterinsights.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/contactcenterinsights/v1/resources.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
option csharp_namespace = "Google.Cloud.ContactCenterInsights.V1";
option go_package = "google.golang.org/genproto/googleapis/cloud/contactcenterinsights/v1;contactcenterinsights";
option java_multiple_files = true;
option java_outer_classname = "ContactCenterInsightsProto";
option java_package = "com.google.cloud.contactcenterinsights.v1";
option php_namespace = "Google\\Cloud\\ContactCenterInsights\\V1";
option ruby_package = "Google::Cloud::ContactCenterInsights::V1";
// An API that lets users analyze and explore their business conversation data.
service ContactCenterInsights {
option (google.api.default_host) = "contactcenterinsights.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Creates a conversation.
rpc CreateConversation(CreateConversationRequest) returns (Conversation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/conversations"
body: "conversation"
};
option (google.api.method_signature) = "parent,conversation,conversation_id";
}
// Updates a conversation.
rpc UpdateConversation(UpdateConversationRequest) returns (Conversation) {
option (google.api.http) = {
patch: "/v1/{conversation.name=projects/*/locations/*/conversations/*}"
body: "conversation"
};
option (google.api.method_signature) = "conversation,update_mask";
}
// Gets a conversation.
rpc GetConversation(GetConversationRequest) returns (Conversation) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/conversations/*}"
};
option (google.api.method_signature) = "name";
}
// Lists conversations.
rpc ListConversations(ListConversationsRequest) returns (ListConversationsResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/conversations"
};
option (google.api.method_signature) = "parent";
}
// Deletes a conversation.
rpc DeleteConversation(DeleteConversationRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/conversations/*}"
};
option (google.api.method_signature) = "name";
}
// Creates an analysis. The long running operation is done when the analysis
// has completed.
rpc CreateAnalysis(CreateAnalysisRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*/conversations/*}/analyses"
body: "analysis"
};
option (google.api.method_signature) = "parent,analysis";
option (google.longrunning.operation_info) = {
response_type: "Analysis"
metadata_type: "CreateAnalysisOperationMetadata"
};
}
// Gets an analysis.
rpc GetAnalysis(GetAnalysisRequest) returns (Analysis) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}"
};
option (google.api.method_signature) = "name";
}
// Lists analyses.
rpc ListAnalyses(ListAnalysesRequest) returns (ListAnalysesResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*/conversations/*}/analyses"
};
option (google.api.method_signature) = "parent";
}
// Deletes an analysis.
rpc DeleteAnalysis(DeleteAnalysisRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}"
};
option (google.api.method_signature) = "name";
}
// Export insights data to a destination defined in the request body.
rpc ExportInsightsData(ExportInsightsDataRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/insightsdata:export"
body: "*"
};
option (google.api.method_signature) = "parent";
option (google.longrunning.operation_info) = {
response_type: "ExportInsightsDataResponse"
metadata_type: "ExportInsightsDataMetadata"
};
}
// Creates an issue model.
rpc CreateIssueModel(CreateIssueModelRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/issueModels"
body: "issue_model"
};
option (google.api.method_signature) = "parent,issue_model";
option (google.longrunning.operation_info) = {
response_type: "IssueModel"
metadata_type: "CreateIssueModelMetadata"
};
}
// Updates an issue model.
rpc UpdateIssueModel(UpdateIssueModelRequest) returns (IssueModel) {
option (google.api.http) = {
patch: "/v1/{issue_model.name=projects/*/locations/*/issueModels/*}"
body: "issue_model"
};
option (google.api.method_signature) = "issue_model,update_mask";
}
// Gets an issue model.
rpc GetIssueModel(GetIssueModelRequest) returns (IssueModel) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/issueModels/*}"
};
option (google.api.method_signature) = "name";
}
// Lists issue models.
rpc ListIssueModels(ListIssueModelsRequest) returns (ListIssueModelsResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/issueModels"
};
option (google.api.method_signature) = "parent";
}
// Deletes an issue model.
rpc DeleteIssueModel(DeleteIssueModelRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/issueModels/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteIssueModelMetadata"
};
}
// Deploys an issue model. Returns an error if a model is already deployed.
// An issue model can only be used in analysis after it has been deployed.
rpc DeployIssueModel(DeployIssueModelRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{name=projects/*/locations/*/issueModels/*}:deploy"
body: "*"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "DeployIssueModelResponse"
metadata_type: "DeployIssueModelMetadata"
};
}
// Undeploys an issue model.
// An issue model can not be used in analysis after it has been undeployed.
rpc UndeployIssueModel(UndeployIssueModelRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{name=projects/*/locations/*/issueModels/*}:undeploy"
body: "*"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "UndeployIssueModelResponse"
metadata_type: "UndeployIssueModelMetadata"
};
}
// Gets an issue.
rpc GetIssue(GetIssueRequest) returns (Issue) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/issueModels/*/issues/*}"
};
option (google.api.method_signature) = "name";
}
// Lists issues.
rpc ListIssues(ListIssuesRequest) returns (ListIssuesResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*/issueModels/*}/issues"
};
option (google.api.method_signature) = "parent";
}
// Updates an issue.
rpc UpdateIssue(UpdateIssueRequest) returns (Issue) {
option (google.api.http) = {
patch: "/v1/{issue.name=projects/*/locations/*/issueModels/*/issues/*}"
body: "issue"
};
option (google.api.method_signature) = "issue,update_mask";
}
// Gets an issue model's statistics.
rpc CalculateIssueModelStats(CalculateIssueModelStatsRequest) returns (CalculateIssueModelStatsResponse) {
option (google.api.http) = {
get: "/v1/{issue_model=projects/*/locations/*/issueModels/*}:calculateIssueModelStats"
};
option (google.api.method_signature) = "issue_model";
}
// Creates a phrase matcher.
rpc CreatePhraseMatcher(CreatePhraseMatcherRequest) returns (PhraseMatcher) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/phraseMatchers"
body: "phrase_matcher"
};
option (google.api.method_signature) = "parent,phrase_matcher";
}
// Gets a phrase matcher.
rpc GetPhraseMatcher(GetPhraseMatcherRequest) returns (PhraseMatcher) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/phraseMatchers/*}"
};
option (google.api.method_signature) = "name";
}
// Lists phrase matchers.
rpc ListPhraseMatchers(ListPhraseMatchersRequest) returns (ListPhraseMatchersResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/phraseMatchers"
};
option (google.api.method_signature) = "parent";
}
// Deletes a phrase matcher.
rpc DeletePhraseMatcher(DeletePhraseMatcherRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/phraseMatchers/*}"
};
option (google.api.method_signature) = "name";
}
// Updates a phrase matcher.
rpc UpdatePhraseMatcher(UpdatePhraseMatcherRequest) returns (PhraseMatcher) {
option (google.api.http) = {
patch: "/v1/{phrase_matcher.name=projects/*/locations/*/phraseMatchers/*}"
body: "phrase_matcher"
};
option (google.api.method_signature) = "phrase_matcher,update_mask";
}
// Gets conversation statistics.
rpc CalculateStats(CalculateStatsRequest) returns (CalculateStatsResponse) {
option (google.api.http) = {
get: "/v1/{location=projects/*/locations/*}/conversations:calculateStats"
};
option (google.api.method_signature) = "location";
}
// Gets project-level settings.
rpc GetSettings(GetSettingsRequest) returns (Settings) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/settings}"
};
option (google.api.method_signature) = "name";
}
// Updates project-level settings.
rpc UpdateSettings(UpdateSettingsRequest) returns (Settings) {
option (google.api.http) = {
patch: "/v1/{settings.name=projects/*/locations/*/settings}"
body: "settings"
};
option (google.api.method_signature) = "settings,update_mask";
}
}
// The request for calculating conversation statistics.
message CalculateStatsRequest {
// Required. The location of the conversations.
string location = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// A filter to reduce results to a specific subset. This field is useful for
// getting statistics about conversations with specific properties.
string filter = 2;
}
// Represents the options for views of a conversation.
enum ConversationView {
// Not specified. Defaults to FULL on GetConversationRequest and BASIC for
// ListConversationsRequest.
CONVERSATION_VIEW_UNSPECIFIED = 0;
// Transcript field is not populated in the response.
BASIC = 1;
// All fields are populated.
FULL = 2;
}
// The response for calculating conversation statistics.
message CalculateStatsResponse {
// A time series representing conversations over time.
message TimeSeries {
// A single interval in a time series.
message Interval {
// The start time of this interval.
google.protobuf.Timestamp start_time = 1;
// The number of conversations created in this interval.
int32 conversation_count = 2;
}
// The duration of each interval.
google.protobuf.Duration interval_duration = 1;
// An ordered list of intervals from earliest to latest, where each interval
// represents the number of conversations that transpired during the time
// window.
repeated Interval points = 2;
}
// The average duration of all conversations. The average is calculated using
// only conversations that have a time duration.
google.protobuf.Duration average_duration = 1;
// The average number of turns per conversation.
int32 average_turn_count = 2;
// The total number of conversations.
int32 conversation_count = 3;
// A map associating each smart highlighter display name with its respective
// number of matches in the set of conversations.
map<string, int32> smart_highlighter_matches = 4;
// A map associating each custom highlighter resource name with its respective
// number of matches in the set of conversations.
map<string, int32> custom_highlighter_matches = 5;
// A map associating each issue resource name with its respective number of
// matches in the set of conversations. Key has the format:
// `projects/<Project-ID>/locations/<Location-ID>/issueModels/<Issue-Model-ID>/issues/<Issue-ID>`
// Deprecated, use `issue_matches_stats` field instead.
map<string, int32> issue_matches = 6 [deprecated = true];
// A map associating each issue resource name with its respective number of
// matches in the set of conversations. Key has the format:
// `projects/<Project-ID>/locations/<Location-ID>/issueModels/<Issue-Model-ID>/issues/<Issue-ID>`
map<string, IssueModelLabelStats.IssueStats> issue_matches_stats = 8;
// A time series representing the count of conversations created over time
// that match that requested filter criteria.
TimeSeries conversation_count_time_series = 7;
}
// Metadata for a create analysis operation.
message CreateAnalysisOperationMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The Conversation that this Analysis Operation belongs to.
string conversation = 3 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Conversation"
}
];
}
// Request to create a conversation.
message CreateConversationRequest {
// Required. The parent resource of the conversation.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The conversation resource to create.
Conversation conversation = 2 [(google.api.field_behavior) = REQUIRED];
// A unique ID for the new conversation. This ID will become the final
// component of the conversation's resource name. If no ID is specified, a
// server-generated ID will be used.
//
// This value should be 4-64 characters and must match the regular
// expression `^[a-z0-9-]{4,64}$`. Valid characters are `[a-z][0-9]-`
string conversation_id = 3;
}
// Request to list conversations.
message ListConversationsRequest {
// Required. The parent resource of the conversation.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The maximum number of conversations to return in the response. A valid page
// size ranges from 0 to 1,000 inclusive. If the page size is zero or
// unspecified, a default page size of 100 will be chosen. Note that a call
// might return fewer results than the requested page size.
int32 page_size = 2;
// The value returned by the last `ListConversationsResponse`. This value
// indicates that this is a continuation of a prior `ListConversations` call
// and that the system should return the next page of data.
string page_token = 3;
// A filter to reduce results to a specific subset. Useful for querying
// conversations with specific properties.
string filter = 4;
// The level of details of the conversation. Default is `BASIC`.
ConversationView view = 5;
}
// The response of listing conversations.
message ListConversationsResponse {
// The conversations that match the request.
repeated Conversation conversations = 1;
// A token which can be sent as `page_token` to retrieve the next page. If
// this field is set, it means there is another page available. If it is not
// set, it means no other pages are available.
string next_page_token = 2;
}
// The request to get a conversation.
message GetConversationRequest {
// Required. The name of the conversation to get.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Conversation"
}
];
// The level of details of the conversation. Default is `FULL`.
ConversationView view = 2;
}
// The request to update a conversation.
message UpdateConversationRequest {
// Required. The new values for the conversation.
Conversation conversation = 1 [(google.api.field_behavior) = REQUIRED];
// The list of fields to be updated.
google.protobuf.FieldMask update_mask = 2;
}
// The request to delete a conversation.
message DeleteConversationRequest {
// Required. The name of the conversation to delete.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Conversation"
}
];
// If set to true, all of this conversation's analyses will also be deleted.
// Otherwise, the request will only succeed if the conversation has no
// analyses.
bool force = 2;
}
// The request to create an analysis.
message CreateAnalysisRequest {
// Required. The parent resource of the analysis.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Conversation"
}
];
// Required. The analysis to create.
Analysis analysis = 2 [(google.api.field_behavior) = REQUIRED];
}
// The request to list analyses.
message ListAnalysesRequest {
// Required. The parent resource of the analyses.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Conversation"
}
];
// The maximum number of analyses to return in the response. If this
// value is zero, the service will select a default size. A call might return
// fewer objects than requested. A non-empty `next_page_token` in the response
// indicates that more data is available.
int32 page_size = 2;
// The value returned by the last `ListAnalysesResponse`; indicates
// that this is a continuation of a prior `ListAnalyses` call and
// the system should return the next page of data.
string page_token = 3;
// A filter to reduce results to a specific subset. Useful for querying
// conversations with specific properties.
string filter = 4;
}
// The response to list analyses.
message ListAnalysesResponse {
// The analyses that match the request.
repeated Analysis analyses = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// The request to get an analysis.
message GetAnalysisRequest {
// Required. The name of the analysis to get.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Analysis"
}
];
}
// The request to delete an analysis.
message DeleteAnalysisRequest {
// Required. The name of the analysis to delete.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Analysis"
}
];
}
// The request to export insights.
message ExportInsightsDataRequest {
// A BigQuery Table Reference.
message BigQueryDestination {
// A project ID or number. If specified, then export will attempt to
// write data to this project instead of the resource project. Otherwise,
// the resource project will be used.
string project_id = 3;
// Required. The name of the BigQuery dataset that the snapshot result should be
// exported to. If this dataset does not exist, the export call returns an
// INVALID_ARGUMENT error.
string dataset = 1 [(google.api.field_behavior) = REQUIRED];
// The BigQuery table name to which the insights data should be written.
// If this table does not exist, the export call returns an INVALID_ARGUMENT
// error.
string table = 2;
}
// Specifies the action that occurs if the destination table already exists.
enum WriteDisposition {
// Write disposition is not specified. Defaults to WRITE_TRUNCATE.
WRITE_DISPOSITION_UNSPECIFIED = 0;
// If the table already exists, BigQuery will overwrite the table data and
// use the schema from the load.
WRITE_TRUNCATE = 1;
// If the table already exists, BigQuery will append data to the table.
WRITE_APPEND = 2;
}
// Exporter destination.
oneof destination {
// Specified if sink is a BigQuery table.
BigQueryDestination big_query_destination = 2;
}
// Required. The parent resource to export data from.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// A filter to reduce results to a specific subset. Useful for exporting
// conversations with specific properties.
string filter = 3;
// A fully qualified KMS key name for BigQuery tables protected by CMEK.
// Format:
// projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}
string kms_key = 4;
// Options for what to do if the destination table already exists.
WriteDisposition write_disposition = 5;
}
// Metadata for an export insights operation.
message ExportInsightsDataMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// The original request for export.
ExportInsightsDataRequest request = 3;
// Partial errors during export operation that might cause the operation
// output to be incomplete.
repeated google.rpc.Status partial_errors = 4;
}
// Response for an export insights operation.
message ExportInsightsDataResponse {
}
// The request to create an issue model.
message CreateIssueModelRequest {
// Required. The parent resource of the issue model.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The issue model to create.
IssueModel issue_model = 2 [(google.api.field_behavior) = REQUIRED];
}
// Metadata for creating an issue model.
message CreateIssueModelMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// The original request for creation.
CreateIssueModelRequest request = 3;
}
// The request to update an issue model.
message UpdateIssueModelRequest {
// Required. The new values for the issue model.
IssueModel issue_model = 1 [(google.api.field_behavior) = REQUIRED];
// The list of fields to be updated.
google.protobuf.FieldMask update_mask = 2;
}
// Request to list issue models.
message ListIssueModelsRequest {
// Required. The parent resource of the issue model.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
}
// The response of listing issue models.
message ListIssueModelsResponse {
// The issue models that match the request.
repeated IssueModel issue_models = 1;
}
// The request to get an issue model.
message GetIssueModelRequest {
// Required. The name of the issue model to get.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/IssueModel"
}
];
}
// The request to delete an issue model.
message DeleteIssueModelRequest {
// Required. The name of the issue model to delete.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/IssueModel"
}
];
}
// Metadata for deleting an issue model.
message DeleteIssueModelMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// The original request for deletion.
DeleteIssueModelRequest request = 3;
}
// The request to deploy an issue model.
message DeployIssueModelRequest {
// Required. The issue model to deploy.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/IssueModel"
}
];
}
// The response to deploy an issue model.
message DeployIssueModelResponse {
}
// Metadata for deploying an issue model.
message DeployIssueModelMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// The original request for deployment.
DeployIssueModelRequest request = 3;
}
// The request to undeploy an issue model.
message UndeployIssueModelRequest {
// Required. The issue model to undeploy.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/IssueModel"
}
];
}
// The response to undeploy an issue model.
message UndeployIssueModelResponse {
}
// Metadata for undeploying an issue model.
message UndeployIssueModelMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// The original request for undeployment.
UndeployIssueModelRequest request = 3;
}
// The request to get an issue.
message GetIssueRequest {
// Required. The name of the issue to get.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Issue"
}
];
}
// Request to list issues.
message ListIssuesRequest {
// Required. The parent resource of the issue.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/IssueModel"
}
];
}
// The response of listing issues.
message ListIssuesResponse {
// The issues that match the request.
repeated Issue issues = 1;
}
// The request to update an issue.
message UpdateIssueRequest {
// Required. The new values for the issue.
Issue issue = 1 [(google.api.field_behavior) = REQUIRED];
// The list of fields to be updated.
google.protobuf.FieldMask update_mask = 2;
}
// Request to get statistics of an issue model.
message CalculateIssueModelStatsRequest {
// Required. The resource name of the issue model to query against.
string issue_model = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/IssueModel"
}
];
}
// Response of querying an issue model's statistics.
message CalculateIssueModelStatsResponse {
// The latest label statistics for the queried issue model. Includes results
// on both training data and data labeled after deployment.
IssueModelLabelStats current_stats = 4;
}
// Request to create a phrase matcher.
message CreatePhraseMatcherRequest {
// Required. The parent resource of the phrase matcher. Required. The location to create
// a phrase matcher for.
// Format: `projects/<Project ID>/locations/<Location ID>` or
// `projects/<Project Number>/locations/<Location ID>`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The phrase matcher resource to create.
PhraseMatcher phrase_matcher = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request to list phrase matchers.
message ListPhraseMatchersRequest {
// Required. The parent resource of the phrase matcher.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The maximum number of phrase matchers to return in the response. If this
// value is zero, the service will select a default size. A call might return
// fewer objects than requested. A non-empty `next_page_token` in the response
// indicates that more data is available.
int32 page_size = 2;
// The value returned by the last `ListPhraseMatchersResponse`. This value
// indicates that this is a continuation of a prior `ListPhraseMatchers` call
// and that the system should return the next page of data.
string page_token = 3;
// A filter to reduce results to a specific subset. Useful for querying
// phrase matchers with specific properties.
string filter = 4;
}
// The response of listing phrase matchers.
message ListPhraseMatchersResponse {
// The phrase matchers that match the request.
repeated PhraseMatcher phrase_matchers = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// The request to get a a phrase matcher.
message GetPhraseMatcherRequest {
// Required. The name of the phrase matcher to get.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/PhraseMatcher"
}
];
}
// The request to delete a phrase matcher.
message DeletePhraseMatcherRequest {
// Required. The name of the phrase matcher to delete.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/PhraseMatcher"
}
];
}
// The request to update a phrase matcher.
message UpdatePhraseMatcherRequest {
// Required. The new values for the phrase matcher.
PhraseMatcher phrase_matcher = 1 [(google.api.field_behavior) = REQUIRED];
// The list of fields to be updated.
google.protobuf.FieldMask update_mask = 2;
}
// The request to get project-level settings.
message GetSettingsRequest {
// Required. The name of the settings resource to get.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "contactcenterinsights.googleapis.com/Settings"
}
];
}
// The request to update project-level settings.
message UpdateSettingsRequest {
// Required. The new settings values.
Settings settings = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The list of fields to be updated.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
}