contact_center_insights.proto 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. // Copyright 2021 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.contactcenterinsights.v1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/cloud/contactcenterinsights/v1/resources.proto";
  21. import "google/longrunning/operations.proto";
  22. import "google/protobuf/duration.proto";
  23. import "google/protobuf/empty.proto";
  24. import "google/protobuf/field_mask.proto";
  25. import "google/protobuf/timestamp.proto";
  26. import "google/rpc/status.proto";
  27. option csharp_namespace = "Google.Cloud.ContactCenterInsights.V1";
  28. option go_package = "google.golang.org/genproto/googleapis/cloud/contactcenterinsights/v1;contactcenterinsights";
  29. option java_multiple_files = true;
  30. option java_outer_classname = "ContactCenterInsightsProto";
  31. option java_package = "com.google.cloud.contactcenterinsights.v1";
  32. option php_namespace = "Google\\Cloud\\ContactCenterInsights\\V1";
  33. option ruby_package = "Google::Cloud::ContactCenterInsights::V1";
  34. // An API that lets users analyze and explore their business conversation data.
  35. service ContactCenterInsights {
  36. option (google.api.default_host) = "contactcenterinsights.googleapis.com";
  37. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  38. // Creates a conversation.
  39. rpc CreateConversation(CreateConversationRequest) returns (Conversation) {
  40. option (google.api.http) = {
  41. post: "/v1/{parent=projects/*/locations/*}/conversations"
  42. body: "conversation"
  43. };
  44. option (google.api.method_signature) = "parent,conversation,conversation_id";
  45. }
  46. // Updates a conversation.
  47. rpc UpdateConversation(UpdateConversationRequest) returns (Conversation) {
  48. option (google.api.http) = {
  49. patch: "/v1/{conversation.name=projects/*/locations/*/conversations/*}"
  50. body: "conversation"
  51. };
  52. option (google.api.method_signature) = "conversation,update_mask";
  53. }
  54. // Gets a conversation.
  55. rpc GetConversation(GetConversationRequest) returns (Conversation) {
  56. option (google.api.http) = {
  57. get: "/v1/{name=projects/*/locations/*/conversations/*}"
  58. };
  59. option (google.api.method_signature) = "name";
  60. }
  61. // Lists conversations.
  62. rpc ListConversations(ListConversationsRequest) returns (ListConversationsResponse) {
  63. option (google.api.http) = {
  64. get: "/v1/{parent=projects/*/locations/*}/conversations"
  65. };
  66. option (google.api.method_signature) = "parent";
  67. }
  68. // Deletes a conversation.
  69. rpc DeleteConversation(DeleteConversationRequest) returns (google.protobuf.Empty) {
  70. option (google.api.http) = {
  71. delete: "/v1/{name=projects/*/locations/*/conversations/*}"
  72. };
  73. option (google.api.method_signature) = "name";
  74. }
  75. // Creates an analysis. The long running operation is done when the analysis
  76. // has completed.
  77. rpc CreateAnalysis(CreateAnalysisRequest) returns (google.longrunning.Operation) {
  78. option (google.api.http) = {
  79. post: "/v1/{parent=projects/*/locations/*/conversations/*}/analyses"
  80. body: "analysis"
  81. };
  82. option (google.api.method_signature) = "parent,analysis";
  83. option (google.longrunning.operation_info) = {
  84. response_type: "Analysis"
  85. metadata_type: "CreateAnalysisOperationMetadata"
  86. };
  87. }
  88. // Gets an analysis.
  89. rpc GetAnalysis(GetAnalysisRequest) returns (Analysis) {
  90. option (google.api.http) = {
  91. get: "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}"
  92. };
  93. option (google.api.method_signature) = "name";
  94. }
  95. // Lists analyses.
  96. rpc ListAnalyses(ListAnalysesRequest) returns (ListAnalysesResponse) {
  97. option (google.api.http) = {
  98. get: "/v1/{parent=projects/*/locations/*/conversations/*}/analyses"
  99. };
  100. option (google.api.method_signature) = "parent";
  101. }
  102. // Deletes an analysis.
  103. rpc DeleteAnalysis(DeleteAnalysisRequest) returns (google.protobuf.Empty) {
  104. option (google.api.http) = {
  105. delete: "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}"
  106. };
  107. option (google.api.method_signature) = "name";
  108. }
  109. // Export insights data to a destination defined in the request body.
  110. rpc ExportInsightsData(ExportInsightsDataRequest) returns (google.longrunning.Operation) {
  111. option (google.api.http) = {
  112. post: "/v1/{parent=projects/*/locations/*}/insightsdata:export"
  113. body: "*"
  114. };
  115. option (google.api.method_signature) = "parent";
  116. option (google.longrunning.operation_info) = {
  117. response_type: "ExportInsightsDataResponse"
  118. metadata_type: "ExportInsightsDataMetadata"
  119. };
  120. }
  121. // Gets an issue model.
  122. rpc GetIssueModel(GetIssueModelRequest) returns (IssueModel) {
  123. option (google.api.http) = {
  124. get: "/v1/{name=projects/*/locations/*/issueModels/*}"
  125. };
  126. option (google.api.method_signature) = "name";
  127. }
  128. // Lists issue models.
  129. rpc ListIssueModels(ListIssueModelsRequest) returns (ListIssueModelsResponse) {
  130. option (google.api.http) = {
  131. get: "/v1/{parent=projects/*/locations/*}/issueModels"
  132. };
  133. option (google.api.method_signature) = "parent";
  134. }
  135. // Gets an issue.
  136. rpc GetIssue(GetIssueRequest) returns (Issue) {
  137. option (google.api.http) = {
  138. get: "/v1/{name=projects/*/locations/*/issueModels/*/issues/*}"
  139. };
  140. option (google.api.method_signature) = "name";
  141. }
  142. // Lists issues.
  143. rpc ListIssues(ListIssuesRequest) returns (ListIssuesResponse) {
  144. option (google.api.http) = {
  145. get: "/v1/{parent=projects/*/locations/*/issueModels/*}/issues"
  146. };
  147. option (google.api.method_signature) = "parent";
  148. }
  149. // Gets an issue model's statistics.
  150. rpc CalculateIssueModelStats(CalculateIssueModelStatsRequest) returns (CalculateIssueModelStatsResponse) {
  151. option (google.api.http) = {
  152. get: "/v1/{issue_model=projects/*/locations/*/issueModels/*}:calculateIssueModelStats"
  153. };
  154. option (google.api.method_signature) = "issue_model";
  155. }
  156. // Creates a phrase matcher.
  157. rpc CreatePhraseMatcher(CreatePhraseMatcherRequest) returns (PhraseMatcher) {
  158. option (google.api.http) = {
  159. post: "/v1/{parent=projects/*/locations/*}/phraseMatchers"
  160. body: "phrase_matcher"
  161. };
  162. option (google.api.method_signature) = "parent,phrase_matcher";
  163. }
  164. // Gets a phrase matcher.
  165. rpc GetPhraseMatcher(GetPhraseMatcherRequest) returns (PhraseMatcher) {
  166. option (google.api.http) = {
  167. get: "/v1/{name=projects/*/locations/*/phraseMatchers/*}"
  168. };
  169. option (google.api.method_signature) = "name";
  170. }
  171. // Lists phrase matchers.
  172. rpc ListPhraseMatchers(ListPhraseMatchersRequest) returns (ListPhraseMatchersResponse) {
  173. option (google.api.http) = {
  174. get: "/v1/{parent=projects/*/locations/*}/phraseMatchers"
  175. };
  176. option (google.api.method_signature) = "parent";
  177. }
  178. // Deletes a phrase matcher.
  179. rpc DeletePhraseMatcher(DeletePhraseMatcherRequest) returns (google.protobuf.Empty) {
  180. option (google.api.http) = {
  181. delete: "/v1/{name=projects/*/locations/*/phraseMatchers/*}"
  182. };
  183. option (google.api.method_signature) = "name";
  184. }
  185. // Gets conversation statistics.
  186. rpc CalculateStats(CalculateStatsRequest) returns (CalculateStatsResponse) {
  187. option (google.api.http) = {
  188. get: "/v1/{location=projects/*/locations/*}/conversations:calculateStats"
  189. };
  190. option (google.api.method_signature) = "location";
  191. }
  192. // Gets project-level settings.
  193. rpc GetSettings(GetSettingsRequest) returns (Settings) {
  194. option (google.api.http) = {
  195. get: "/v1/{name=projects/*/locations/*/settings}"
  196. };
  197. option (google.api.method_signature) = "name";
  198. }
  199. // Updates project-level settings.
  200. rpc UpdateSettings(UpdateSettingsRequest) returns (Settings) {
  201. option (google.api.http) = {
  202. patch: "/v1/{settings.name=projects/*/locations/*/settings}"
  203. body: "settings"
  204. };
  205. option (google.api.method_signature) = "settings,update_mask";
  206. }
  207. }
  208. // The request for calculating conversation statistics.
  209. message CalculateStatsRequest {
  210. // Required. The location of the conversations.
  211. string location = 1 [
  212. (google.api.field_behavior) = REQUIRED,
  213. (google.api.resource_reference) = {
  214. type: "locations.googleapis.com/Location"
  215. }
  216. ];
  217. // A filter to reduce results to a specific subset. This field is useful for
  218. // getting statistics about conversations with specific properties.
  219. string filter = 2;
  220. }
  221. // Represents the options for views of a conversation.
  222. enum ConversationView {
  223. // Not specified. Defaults to FULL on GetConversationRequest and BASIC for
  224. // ListConversationsRequest.
  225. CONVERSATION_VIEW_UNSPECIFIED = 0;
  226. // Transcript field is not populated in the response.
  227. BASIC = 1;
  228. // All fields are populated.
  229. FULL = 2;
  230. }
  231. // The response for calculating conversation statistics.
  232. message CalculateStatsResponse {
  233. // A time series representing conversations over time.
  234. message TimeSeries {
  235. // A single interval in a time series.
  236. message Interval {
  237. // The start time of this interval.
  238. google.protobuf.Timestamp start_time = 1;
  239. // The number of conversations created in this interval.
  240. int32 conversation_count = 2;
  241. }
  242. // The duration of each interval.
  243. google.protobuf.Duration interval_duration = 1;
  244. // An ordered list of intervals from earliest to latest, where each interval
  245. // represents the number of conversations that transpired during the time
  246. // window.
  247. repeated Interval points = 2;
  248. }
  249. // The average duration of all conversations. The average is calculated using
  250. // only conversations that have a time duration.
  251. google.protobuf.Duration average_duration = 1;
  252. // The average number of turns per conversation.
  253. int32 average_turn_count = 2;
  254. // The total number of conversations.
  255. int32 conversation_count = 3;
  256. // A map associating each smart highlighter display name with its respective
  257. // number of matches in the set of conversations.
  258. map<string, int32> smart_highlighter_matches = 4;
  259. // A map associating each custom highlighter resource name with its respective
  260. // number of matches in the set of conversations.
  261. map<string, int32> custom_highlighter_matches = 5;
  262. // A map associating each issue resource name with its respective number of
  263. // matches in the set of conversations. Key has the format:
  264. // `projects/<Project ID>/locations/<Location ID>/issueModels/<Issue Model
  265. // ID>/issues/<Issue ID>`
  266. map<string, int32> issue_matches = 6;
  267. // A time series representing the count of conversations created over time
  268. // that match that requested filter criteria.
  269. TimeSeries conversation_count_time_series = 7;
  270. }
  271. // Metadata for a create analysis operation.
  272. message CreateAnalysisOperationMetadata {
  273. // Output only. The time the operation was created.
  274. google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  275. // Output only. The time the operation finished running.
  276. google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  277. // Output only. The Conversation that this Analysis Operation belongs to.
  278. string conversation = 3 [
  279. (google.api.field_behavior) = OUTPUT_ONLY,
  280. (google.api.resource_reference) = {
  281. type: "contactcenterinsights.googleapis.com/Conversation"
  282. }
  283. ];
  284. }
  285. // Request to create a conversation.
  286. message CreateConversationRequest {
  287. // Required. The parent resource of the conversation.
  288. string parent = 1 [
  289. (google.api.field_behavior) = REQUIRED,
  290. (google.api.resource_reference) = {
  291. type: "locations.googleapis.com/Location"
  292. }
  293. ];
  294. // Required. The conversation resource to create.
  295. Conversation conversation = 2 [(google.api.field_behavior) = REQUIRED];
  296. // A unique ID for the new conversation. This ID will become the final
  297. // component of the conversation's resource name. If no ID is specified, a
  298. // server-generated ID will be used.
  299. //
  300. // This value should be 4-32 characters and must match the regular
  301. // expression /^[a-z0-9-]{4,32}$/. Valid characters are /[a-z][0-9]-/
  302. string conversation_id = 3;
  303. }
  304. // Request to list conversations.
  305. message ListConversationsRequest {
  306. // Required. The parent resource of the conversation.
  307. string parent = 1 [
  308. (google.api.field_behavior) = REQUIRED,
  309. (google.api.resource_reference) = {
  310. type: "locations.googleapis.com/Location"
  311. }
  312. ];
  313. // The maximum number of conversations to return in the response. If this
  314. // value is zero, the service will select a default size. A call might return
  315. // fewer objects than requested. A non-empty `next_page_token` in the response
  316. // indicates that more data is available.
  317. int32 page_size = 2;
  318. // The value returned by the last `ListConversationsResponse`. This value
  319. // indicates that this is a continuation of a prior `ListConversations` call
  320. // and that the system should return the next page of data.
  321. string page_token = 3;
  322. // A filter to reduce results to a specific subset. Useful for querying
  323. // conversations with specific properties.
  324. string filter = 4;
  325. // The level of details of the conversation. Default is `BASIC`.
  326. ConversationView view = 5;
  327. }
  328. // The response of listing conversations.
  329. message ListConversationsResponse {
  330. // The conversations that match the request.
  331. repeated Conversation conversations = 1;
  332. // A token, which can be sent as `page_token` to retrieve the next page.
  333. // If this field is omitted, there are no subsequent pages.
  334. string next_page_token = 2;
  335. }
  336. // The request to get a conversation.
  337. message GetConversationRequest {
  338. // Required. The name of the conversation to get.
  339. string name = 1 [
  340. (google.api.field_behavior) = REQUIRED,
  341. (google.api.resource_reference) = {
  342. type: "contactcenterinsights.googleapis.com/Conversation"
  343. }
  344. ];
  345. // The level of details of the conversation. Default is `FULL`.
  346. ConversationView view = 2;
  347. }
  348. // The request to update a conversation.
  349. message UpdateConversationRequest {
  350. // Required. The new values for the conversation.
  351. Conversation conversation = 1 [(google.api.field_behavior) = REQUIRED];
  352. // The list of fields to be updated.
  353. google.protobuf.FieldMask update_mask = 2;
  354. }
  355. // The request to delete a conversation.
  356. message DeleteConversationRequest {
  357. // Required. The name of the conversation to delete.
  358. string name = 1 [
  359. (google.api.field_behavior) = REQUIRED,
  360. (google.api.resource_reference) = {
  361. type: "contactcenterinsights.googleapis.com/Conversation"
  362. }
  363. ];
  364. // If set to true, all of this conversation's analyses will also be deleted.
  365. // Otherwise, the request will only succeed if the conversation has no
  366. // analyses.
  367. bool force = 2;
  368. }
  369. // The request to create an analysis.
  370. message CreateAnalysisRequest {
  371. // Required. The parent resource of the analysis.
  372. string parent = 1 [
  373. (google.api.field_behavior) = REQUIRED,
  374. (google.api.resource_reference) = {
  375. type: "contactcenterinsights.googleapis.com/Conversation"
  376. }
  377. ];
  378. // Required. The analysis to create.
  379. Analysis analysis = 2 [(google.api.field_behavior) = REQUIRED];
  380. }
  381. // The request to list analyses.
  382. message ListAnalysesRequest {
  383. // Required. The parent resource of the analyses.
  384. string parent = 1 [
  385. (google.api.field_behavior) = REQUIRED,
  386. (google.api.resource_reference) = {
  387. type: "contactcenterinsights.googleapis.com/Conversation"
  388. }
  389. ];
  390. // The maximum number of analyses to return in the response. If this
  391. // value is zero, the service will select a default size. A call might return
  392. // fewer objects than requested. A non-empty `next_page_token` in the response
  393. // indicates that more data is available.
  394. int32 page_size = 2;
  395. // The value returned by the last `ListAnalysesResponse`; indicates
  396. // that this is a continuation of a prior `ListAnalyses` call and
  397. // the system should return the next page of data.
  398. string page_token = 3;
  399. // A filter to reduce results to a specific subset. Useful for querying
  400. // conversations with specific properties.
  401. string filter = 4;
  402. }
  403. // The response to list analyses.
  404. message ListAnalysesResponse {
  405. // The analyses that match the request.
  406. repeated Analysis analyses = 1;
  407. // A token, which can be sent as `page_token` to retrieve the next page.
  408. // If this field is omitted, there are no subsequent pages.
  409. string next_page_token = 2;
  410. }
  411. // The request to get an analysis.
  412. message GetAnalysisRequest {
  413. // Required. The name of the analysis to get.
  414. string name = 1 [
  415. (google.api.field_behavior) = REQUIRED,
  416. (google.api.resource_reference) = {
  417. type: "contactcenterinsights.googleapis.com/Analysis"
  418. }
  419. ];
  420. }
  421. // The request to delete an analysis.
  422. message DeleteAnalysisRequest {
  423. // Required. The name of the analysis to delete.
  424. string name = 1 [
  425. (google.api.field_behavior) = REQUIRED,
  426. (google.api.resource_reference) = {
  427. type: "contactcenterinsights.googleapis.com/Analysis"
  428. }
  429. ];
  430. }
  431. // The request to export insights.
  432. message ExportInsightsDataRequest {
  433. // A BigQuery Table Reference.
  434. message BigQueryDestination {
  435. // A project ID or number. If specified, then export will attempt to
  436. // write data to this project instead of the resource project. Otherwise,
  437. // the resource project will be used.
  438. string project_id = 3;
  439. // Required. The name of the BigQuery dataset that the snapshot result should be
  440. // exported to. If this dataset does not exist, the export call returns an
  441. // INVALID_ARGUMENT error.
  442. string dataset = 1 [(google.api.field_behavior) = REQUIRED];
  443. // The BigQuery table name to which the insights data should be written.
  444. // If this table does not exist, the export call returns an INVALID_ARGUMENT
  445. // error.
  446. string table = 2;
  447. }
  448. // Exporter destination.
  449. oneof destination {
  450. // Specified if sink is a BigQuery table.
  451. BigQueryDestination big_query_destination = 2;
  452. }
  453. // Required. The parent resource to export data from.
  454. string parent = 1 [
  455. (google.api.field_behavior) = REQUIRED,
  456. (google.api.resource_reference) = {
  457. type: "locations.googleapis.com/Location"
  458. }
  459. ];
  460. // A filter to reduce results to a specific subset. Useful for exporting
  461. // conversations with specific properties.
  462. string filter = 3;
  463. // A fully qualified KMS key name for BigQuery tables protected by CMEK.
  464. // Format:
  465. // projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}
  466. string kms_key = 4;
  467. }
  468. // Metadata for an export insights operation.
  469. message ExportInsightsDataMetadata {
  470. // Output only. The time the operation was created.
  471. google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  472. // Output only. The time the operation finished running.
  473. google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  474. // The original request for export.
  475. ExportInsightsDataRequest request = 3;
  476. // Partial errors during export operation that might cause the operation
  477. // output to be incomplete.
  478. repeated google.rpc.Status partial_errors = 4;
  479. }
  480. // Response for an export insights operation.
  481. message ExportInsightsDataResponse {
  482. }
  483. // Request to list issue models.
  484. message ListIssueModelsRequest {
  485. // Required. The parent resource of the issue model.
  486. string parent = 1 [
  487. (google.api.field_behavior) = REQUIRED,
  488. (google.api.resource_reference) = {
  489. type: "locations.googleapis.com/Location"
  490. }
  491. ];
  492. }
  493. // The response of listing issue models.
  494. message ListIssueModelsResponse {
  495. // The issue models that match the request.
  496. repeated IssueModel issue_models = 1;
  497. }
  498. // The request to get an issue model.
  499. message GetIssueModelRequest {
  500. // Required. The name of the issue model to get.
  501. string name = 1 [
  502. (google.api.field_behavior) = REQUIRED,
  503. (google.api.resource_reference) = {
  504. type: "contactcenterinsights.googleapis.com/IssueModel"
  505. }
  506. ];
  507. }
  508. // The request to get an issue.
  509. message GetIssueRequest {
  510. // Required. The name of the issue to get.
  511. string name = 1 [
  512. (google.api.field_behavior) = REQUIRED,
  513. (google.api.resource_reference) = {
  514. type: "contactcenterinsights.googleapis.com/Issue"
  515. }
  516. ];
  517. }
  518. // Request to list issues.
  519. message ListIssuesRequest {
  520. // Required. The parent resource of the issue.
  521. string parent = 1 [
  522. (google.api.field_behavior) = REQUIRED,
  523. (google.api.resource_reference) = {
  524. type: "contactcenterinsights.googleapis.com/IssueModel"
  525. }
  526. ];
  527. }
  528. // The response of listing issues.
  529. message ListIssuesResponse {
  530. // The issues that match the request.
  531. repeated Issue issues = 1;
  532. }
  533. // Request to get statistics of an issue model.
  534. message CalculateIssueModelStatsRequest {
  535. // Required. The resource name of the issue model to query against.
  536. string issue_model = 1 [
  537. (google.api.field_behavior) = REQUIRED,
  538. (google.api.resource_reference) = {
  539. type: "contactcenterinsights.googleapis.com/IssueModel"
  540. }
  541. ];
  542. }
  543. // Response of querying an issue model's statistics.
  544. message CalculateIssueModelStatsResponse {
  545. // The latest label statistics for the queried issue model. Includes results
  546. // on both training data and data labeled after deployment.
  547. IssueModelLabelStats current_stats = 4;
  548. }
  549. // Request to create a phrase matcher.
  550. message CreatePhraseMatcherRequest {
  551. // Required. The parent resource of the phrase matcher. Required. The location to create
  552. // a phrase matcher for.
  553. // Format: `projects/<Project ID>/locations/<Location ID>` or
  554. // `projects/<Project Number>/locations/<Location ID>`
  555. string parent = 1 [
  556. (google.api.field_behavior) = REQUIRED,
  557. (google.api.resource_reference) = {
  558. type: "locations.googleapis.com/Location"
  559. }
  560. ];
  561. // Required. The phrase matcher resource to create.
  562. PhraseMatcher phrase_matcher = 2 [(google.api.field_behavior) = REQUIRED];
  563. }
  564. // Request to list phrase matchers.
  565. message ListPhraseMatchersRequest {
  566. // Required. The parent resource of the phrase matcher.
  567. string parent = 1 [
  568. (google.api.field_behavior) = REQUIRED,
  569. (google.api.resource_reference) = {
  570. type: "locations.googleapis.com/Location"
  571. }
  572. ];
  573. // The maximum number of phrase matchers to return in the response. If this
  574. // value is zero, the service will select a default size. A call might return
  575. // fewer objects than requested. A non-empty `next_page_token` in the response
  576. // indicates that more data is available.
  577. int32 page_size = 2;
  578. // The value returned by the last `ListPhraseMatchersResponse`. This value
  579. // indicates that this is a continuation of a prior `ListPhraseMatchers` call
  580. // and that the system should return the next page of data.
  581. string page_token = 3;
  582. // A filter to reduce results to a specific subset. Useful for querying
  583. // phrase matchers with specific properties.
  584. string filter = 4;
  585. }
  586. // The response of listing phrase matchers.
  587. message ListPhraseMatchersResponse {
  588. // The phrase matchers that match the request.
  589. repeated PhraseMatcher phrase_matchers = 1;
  590. // A token, which can be sent as `page_token` to retrieve the next page.
  591. // If this field is omitted, there are no subsequent pages.
  592. string next_page_token = 2;
  593. }
  594. // The request to get a a phrase matcher.
  595. message GetPhraseMatcherRequest {
  596. // Required. The name of the phrase matcher to get.
  597. string name = 1 [
  598. (google.api.field_behavior) = REQUIRED,
  599. (google.api.resource_reference) = {
  600. type: "contactcenterinsights.googleapis.com/PhraseMatcher"
  601. }
  602. ];
  603. }
  604. // The request to delete a phrase matcher.
  605. message DeletePhraseMatcherRequest {
  606. // Required. The name of the phrase matcher to delete.
  607. string name = 1 [
  608. (google.api.field_behavior) = REQUIRED,
  609. (google.api.resource_reference) = {
  610. type: "contactcenterinsights.googleapis.com/PhraseMatcher"
  611. }
  612. ];
  613. }
  614. // The request to get project-level settings.
  615. message GetSettingsRequest {
  616. // Required. The name of the settings resource to get.
  617. string name = 1 [
  618. (google.api.field_behavior) = REQUIRED,
  619. (google.api.resource_reference) = {
  620. type: "contactcenterinsights.googleapis.com/Settings"
  621. }
  622. ];
  623. }
  624. // The request to update project-level settings.
  625. message UpdateSettingsRequest {
  626. // Required. The new values for the conversation.
  627. Settings settings = 1 [(google.api.field_behavior) = REQUIRED];
  628. // Required. The list of fields to be updated.
  629. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  630. }