xref: /aosp_15_r20/external/googleapis/google/cloud/dialogflow/v2/conversation_model.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 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
15syntax = "proto3";
16
17package google.cloud.dialogflow.v2;
18
19import "google/api/annotations.proto";
20import "google/api/client.proto";
21import "google/api/field_behavior.proto";
22import "google/api/resource.proto";
23import "google/longrunning/operations.proto";
24import "google/protobuf/empty.proto";
25import "google/protobuf/timestamp.proto";
26
27option cc_enable_arenas = true;
28option csharp_namespace = "Google.Cloud.Dialogflow.V2";
29option go_package = "cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpb";
30option java_multiple_files = true;
31option java_outer_classname = "ConversationModelProto";
32option java_package = "com.google.cloud.dialogflow.v2";
33option objc_class_prefix = "DF";
34
35// Manages a collection of models for human agent assistant.
36service ConversationModels {
37  option (google.api.default_host) = "dialogflow.googleapis.com";
38  option (google.api.oauth_scopes) =
39      "https://www.googleapis.com/auth/cloud-platform,"
40      "https://www.googleapis.com/auth/dialogflow";
41
42  // Creates a model.
43  //
44  // This method is a [long-running
45  // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
46  // The returned `Operation` type has the following method-specific fields:
47  //
48  // - `metadata`:
49  // [CreateConversationModelOperationMetadata][google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata]
50  // - `response`:
51  // [ConversationModel][google.cloud.dialogflow.v2.ConversationModel]
52  rpc CreateConversationModel(CreateConversationModelRequest)
53      returns (google.longrunning.Operation) {
54    option (google.api.http) = {
55      post: "/v2/{parent=projects/*}/conversationModels"
56      body: "conversation_model"
57      additional_bindings {
58        post: "/v2/{parent=projects/*/locations/*}/conversationModels"
59        body: "conversation_model"
60      }
61    };
62    option (google.api.method_signature) = "parent,conversation_model";
63    option (google.longrunning.operation_info) = {
64      response_type: "ConversationModel"
65      metadata_type: "CreateConversationModelOperationMetadata"
66    };
67  }
68
69  // Gets conversation model.
70  rpc GetConversationModel(GetConversationModelRequest)
71      returns (ConversationModel) {
72    option (google.api.http) = {
73      get: "/v2/{name=projects/*/conversationModels/*}"
74      additional_bindings {
75        get: "/v2/{name=projects/*/locations/*/conversationModels/*}"
76      }
77    };
78    option (google.api.method_signature) = "name";
79  }
80
81  // Lists conversation models.
82  rpc ListConversationModels(ListConversationModelsRequest)
83      returns (ListConversationModelsResponse) {
84    option (google.api.http) = {
85      get: "/v2/{parent=projects/*}/conversationModels"
86      additional_bindings {
87        get: "/v2/{parent=projects/*/locations/*}/conversationModels"
88      }
89    };
90    option (google.api.method_signature) = "parent";
91  }
92
93  // Deletes a model.
94  //
95  // This method is a [long-running
96  // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
97  // The returned `Operation` type has the following method-specific fields:
98  //
99  // - `metadata`:
100  // [DeleteConversationModelOperationMetadata][google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata]
101  // - `response`: An [Empty
102  //   message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
103  rpc DeleteConversationModel(DeleteConversationModelRequest)
104      returns (google.longrunning.Operation) {
105    option (google.api.http) = {
106      delete: "/v2/{name=projects/*/conversationModels/*}"
107      additional_bindings {
108        delete: "/v2/{name=projects/*/locations/*/conversationModels/*}"
109      }
110    };
111    option (google.api.method_signature) = "name";
112    option (google.longrunning.operation_info) = {
113      response_type: "google.protobuf.Empty"
114      metadata_type: "DeleteConversationModelOperationMetadata"
115    };
116  }
117
118  // Deploys a model. If a model is already deployed, deploying it
119  // has no effect. A model can only serve prediction requests after it gets
120  // deployed. For article suggestion, custom model will not be used unless
121  // it is deployed.
122  //
123  // This method is a [long-running
124  // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
125  // The returned `Operation` type has the following method-specific fields:
126  //
127  // - `metadata`:
128  // [DeployConversationModelOperationMetadata][google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata]
129  // - `response`: An [Empty
130  //   message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
131  rpc DeployConversationModel(DeployConversationModelRequest)
132      returns (google.longrunning.Operation) {
133    option (google.api.http) = {
134      post: "/v2/{name=projects/*/conversationModels/*}:deploy"
135      body: "*"
136      additional_bindings {
137        post: "/v2/{name=projects/*/locations/*/conversationModels/*}:deploy"
138        body: "*"
139      }
140    };
141    option (google.longrunning.operation_info) = {
142      response_type: "google.protobuf.Empty"
143      metadata_type: "DeployConversationModelOperationMetadata"
144    };
145  }
146
147  // Undeploys a model. If the model is not deployed this method has no effect.
148  // If the model is currently being used:
149  //   - For article suggestion, article suggestion will fallback to the default
150  //     model if model is undeployed.
151  //
152  // This method is a [long-running
153  // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
154  // The returned `Operation` type has the following method-specific fields:
155  //
156  // - `metadata`:
157  // [UndeployConversationModelOperationMetadata][google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata]
158  // - `response`: An [Empty
159  //   message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
160  rpc UndeployConversationModel(UndeployConversationModelRequest)
161      returns (google.longrunning.Operation) {
162    option (google.api.http) = {
163      post: "/v2/{name=projects/*/conversationModels/*}:undeploy"
164      body: "*"
165      additional_bindings {
166        post: "/v2/{name=projects/*/locations/*/conversationModels/*}:undeploy"
167        body: "*"
168      }
169    };
170    option (google.longrunning.operation_info) = {
171      response_type: "google.protobuf.Empty"
172      metadata_type: "UndeployConversationModelOperationMetadata"
173    };
174  }
175
176  // Gets an evaluation of conversation model.
177  rpc GetConversationModelEvaluation(GetConversationModelEvaluationRequest)
178      returns (ConversationModelEvaluation) {
179    option (google.api.http) = {
180      get: "/v2/{name=projects/*/conversationModels/*/evaluations/*}"
181      additional_bindings {
182        get: "/v2/{name=projects/*/locations/*/conversationModels/*/evaluations/*}"
183      }
184    };
185    option (google.api.method_signature) = "name";
186  }
187
188  // Lists evaluations of a conversation model.
189  rpc ListConversationModelEvaluations(ListConversationModelEvaluationsRequest)
190      returns (ListConversationModelEvaluationsResponse) {
191    option (google.api.http) = {
192      get: "/v2/{parent=projects/*/conversationModels/*}/evaluations"
193      additional_bindings {
194        get: "/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations"
195      }
196    };
197    option (google.api.method_signature) = "parent";
198  }
199
200  // Creates evaluation of a conversation model.
201  rpc CreateConversationModelEvaluation(
202      CreateConversationModelEvaluationRequest)
203      returns (google.longrunning.Operation) {
204    option (google.api.http) = {
205      post: "/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations"
206      body: "*"
207    };
208    option (google.api.method_signature) =
209        "parent,conversation_model_evaluation";
210    option (google.longrunning.operation_info) = {
211      response_type: "ConversationModelEvaluation"
212      metadata_type: "CreateConversationModelEvaluationOperationMetadata"
213    };
214  }
215}
216
217// Represents a conversation model.
218message ConversationModel {
219  option (google.api.resource) = {
220    type: "dialogflow.googleapis.com/ConversationModel"
221    pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}"
222    pattern: "projects/{project}/conversationModels/{conversation_model}"
223  };
224
225  // State of the model.
226  enum State {
227    // Should not be used, an un-set enum has this value by default.
228    STATE_UNSPECIFIED = 0;
229
230    // Model being created.
231    CREATING = 1;
232
233    // Model is not deployed but ready to deploy.
234    UNDEPLOYED = 2;
235
236    // Model is deploying.
237    DEPLOYING = 3;
238
239    // Model is deployed and ready to use.
240    DEPLOYED = 4;
241
242    // Model is undeploying.
243    UNDEPLOYING = 5;
244
245    // Model is deleting.
246    DELETING = 6;
247
248    // Model is in error state. Not ready to deploy and use.
249    FAILED = 7;
250
251    // Model is being created but the training has not started,
252    // The model may remain in this state until there is enough capacity to
253    // start training.
254    PENDING = 8;
255  }
256
257  // Model type.
258  enum ModelType {
259    // ModelType unspecified.
260    MODEL_TYPE_UNSPECIFIED = 0;
261
262    // ModelType smart reply dual encoder model.
263    SMART_REPLY_DUAL_ENCODER_MODEL = 2;
264
265    // ModelType smart reply bert model.
266    SMART_REPLY_BERT_MODEL = 6;
267  }
268
269  // ConversationModel resource name. Format:
270  // `projects/<Project ID>/conversationModels/<Conversation Model ID>`
271  string name = 1;
272
273  // Required. The display name of the model. At most 64 bytes long.
274  string display_name = 2 [(google.api.field_behavior) = REQUIRED];
275
276  // Output only. Creation time of this model.
277  google.protobuf.Timestamp create_time = 3
278      [(google.api.field_behavior) = OUTPUT_ONLY];
279
280  // Required. Datasets used to create model.
281  repeated InputDataset datasets = 4 [(google.api.field_behavior) = REQUIRED];
282
283  // Output only. State of the model. A model can only serve prediction requests
284  // after it gets deployed.
285  State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
286
287  // Language code for the conversation model. If not specified, the language
288  // is en-US. Language at ConversationModel should be set for all non en-us
289  // languages.
290  // This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt)
291  // language tag. Example: "en-US".
292  string language_code = 19;
293
294  // Required.
295  // The model metadata that is specific to the problem type.
296  // Must match the metadata type of the dataset used to train the model.
297  oneof model_metadata {
298    // Metadata for article suggestion models.
299    ArticleSuggestionModelMetadata article_suggestion_model_metadata = 8;
300
301    // Metadata for smart reply models.
302    SmartReplyModelMetadata smart_reply_model_metadata = 9;
303  }
304}
305
306// Represents evaluation result of a conversation model.
307message ConversationModelEvaluation {
308  option (google.api.resource) = {
309    type: "dialogflow.googleapis.com/ConversationModelEvaluation"
310    pattern: "projects/{project}/conversationModels/{conversation_model}/evaluations/{evaluation}"
311    pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}/evaluations/{evaluation}"
312  };
313
314  // The resource name of the evaluation. Format:
315  // `projects/<Project ID>/conversationModels/<Conversation Model
316  // ID>/evaluations/<Evaluation ID>`
317  string name = 1;
318
319  // Optional. The display name of the model evaluation. At most 64 bytes long.
320  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
321
322  // Optional. The configuration of the evaluation task.
323  EvaluationConfig evaluation_config = 6
324      [(google.api.field_behavior) = OPTIONAL];
325
326  // Output only. Creation time of this model.
327  google.protobuf.Timestamp create_time = 3
328      [(google.api.field_behavior) = OUTPUT_ONLY];
329
330  // Metrics details.
331  oneof metrics {
332    // Output only. Only available when model is for smart reply.
333    SmartReplyMetrics smart_reply_metrics = 5
334        [(google.api.field_behavior) = OUTPUT_ONLY];
335  }
336
337  // Output only. Human eval template in csv format.
338  // It tooks real-world conversations provided through input dataset, generates
339  // example suggestions for customer to verify quality of the model.
340  // For Smart Reply, the generated csv file contains columns of
341  // Context, (Suggestions,Q1,Q2)*3, Actual reply.
342  // Context contains at most 10 latest messages in the conversation prior to
343  // the current suggestion.
344  // Q1: "Would you send it as the next message of agent?"
345  // Evaluated based on whether the suggest is appropriate to be sent by
346  // agent in current context.
347  // Q2: "Does the suggestion move the conversation closer to resolution?"
348  // Evaluated based on whether the suggestion provide solutions, or answers
349  // customer's question or collect information from customer to resolve the
350  // customer's issue.
351  // Actual reply column contains the actual agent reply sent in the context.
352  string raw_human_eval_template_csv = 8
353      [(google.api.field_behavior) = OUTPUT_ONLY];
354}
355
356// The configuration for model evaluation.
357message EvaluationConfig {
358  // Smart reply specific configuration for evaluation job.
359  message SmartReplyConfig {
360    // The allowlist document resource name.
361    // Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
362    // ID>/documents/<Document ID>`. Only used for smart reply model.
363    string allowlist_document = 1 [(google.api.resource_reference) = {
364      type: "dialogflow.googleapis.com/Document"
365    }];
366
367    // Required. The model to be evaluated can return multiple results with
368    // confidence score on each query. These results will be sorted by the
369    // descending order of the scores and we only keep the first
370    // max_result_count results as the final results to evaluate.
371    int32 max_result_count = 2 [(google.api.field_behavior) = REQUIRED];
372  }
373
374  // Smart compose specific configuration for evaluation job.
375  message SmartComposeConfig {
376    // The allowlist document resource name.
377    // Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
378    // ID>/documents/<Document ID>`. Only used for smart compose model.
379    string allowlist_document = 1 [(google.api.resource_reference) = {
380      type: "dialogflow.googleapis.com/Document"
381    }];
382
383    // Required. The model to be evaluated can return multiple results with
384    // confidence score on each query. These results will be sorted by the
385    // descending order of the scores and we only keep the first
386    // max_result_count results as the final results to evaluate.
387    int32 max_result_count = 2 [(google.api.field_behavior) = REQUIRED];
388  }
389
390  // Required. Datasets used for evaluation.
391  repeated InputDataset datasets = 3 [(google.api.field_behavior) = REQUIRED];
392
393  // Specific configurations for different models in order to do evaluation.
394  oneof model_specific_config {
395    // Configuration for smart reply model evalution.
396    SmartReplyConfig smart_reply_config = 2;
397
398    // Configuration for smart compose model evalution.
399    SmartComposeConfig smart_compose_config = 4;
400  }
401}
402
403// InputDataset used to create model or do evaluation.
404// NextID:5
405message InputDataset {
406  // Required. ConversationDataset resource name. Format:
407  // `projects/<Project ID>/locations/<Location
408  // ID>/conversationDatasets/<Conversation Dataset ID>`
409  string dataset = 1 [
410    (google.api.field_behavior) = REQUIRED,
411    (google.api.resource_reference) = {
412      type: "dialogflow.googleapis.com/ConversationDataset"
413    }
414  ];
415}
416
417// Metadata for article suggestion models.
418message ArticleSuggestionModelMetadata {
419  // Optional. Type of the article suggestion model. If not provided, model_type
420  // is used.
421  ConversationModel.ModelType training_model_type = 3
422      [(google.api.field_behavior) = OPTIONAL];
423}
424
425// Metadata for smart reply models.
426message SmartReplyModelMetadata {
427  // Optional. Type of the smart reply model. If not provided, model_type is
428  // used.
429  ConversationModel.ModelType training_model_type = 6
430      [(google.api.field_behavior) = OPTIONAL];
431}
432
433// The evaluation metrics for smart reply model.
434message SmartReplyMetrics {
435  // Evaluation metrics when retrieving `n` smart replies with the model.
436  message TopNMetrics {
437    // Number of retrieved smart replies. For example, when `n` is 3, this
438    // evaluation contains metrics for when Dialogflow retrieves 3 smart replies
439    // with the model.
440    int32 n = 1;
441
442    // Defined as `number of queries whose top n smart replies have at least one
443    // similar (token match similarity above the defined threshold) reply as the
444    // real reply` divided by `number of queries with at least one smart reply`.
445    // Value ranges from 0.0 to 1.0 inclusive.
446    float recall = 2;
447  }
448
449  // Percentage of target participant messages in the evaluation dataset for
450  // which similar messages have appeared at least once in the allowlist. Should
451  // be [0, 1].
452  float allowlist_coverage = 1;
453
454  // Metrics of top n smart replies, sorted by [TopNMetric.n][].
455  repeated TopNMetrics top_n_metrics = 2;
456
457  // Total number of conversations used to generate this metric.
458  int64 conversation_count = 3;
459}
460
461// The request message for
462// [ConversationModels.CreateConversationModel][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModel]
463message CreateConversationModelRequest {
464  // The project to create conversation model for. Format:
465  // `projects/<Project ID>`
466  string parent = 1;
467
468  // Required. The conversation model to create.
469  ConversationModel conversation_model = 2
470      [(google.api.field_behavior) = REQUIRED];
471}
472
473// The request message for
474// [ConversationModels.GetConversationModel][google.cloud.dialogflow.v2.ConversationModels.GetConversationModel]
475message GetConversationModelRequest {
476  // Required. The conversation model to retrieve. Format:
477  // `projects/<Project ID>/conversationModels/<Conversation Model ID>`
478  string name = 1 [(google.api.field_behavior) = REQUIRED];
479}
480
481// The request message for
482// [ConversationModels.ListConversationModels][google.cloud.dialogflow.v2.ConversationModels.ListConversationModels]
483message ListConversationModelsRequest {
484  // Required. The project to list all conversation models for.
485  // Format: `projects/<Project ID>`
486  string parent = 1 [(google.api.field_behavior) = REQUIRED];
487
488  // Optional. Maximum number of conversation models to return in a single
489  // page. By default 100 and at most 1000.
490  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
491
492  // Optional. The next_page_token value returned from a previous list request.
493  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
494}
495
496// The response message for
497// [ConversationModels.ListConversationModels][google.cloud.dialogflow.v2.ConversationModels.ListConversationModels]
498message ListConversationModelsResponse {
499  // The list of models to return.
500  repeated ConversationModel conversation_models = 1;
501
502  // Token to retrieve the next page of results, or empty if there are no more
503  // results in the list.
504  string next_page_token = 2;
505}
506
507// The request message for
508// [ConversationModels.DeleteConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeleteConversationModel]
509message DeleteConversationModelRequest {
510  // Required. The conversation model to delete. Format:
511  // `projects/<Project ID>/conversationModels/<Conversation Model ID>`
512  string name = 1 [(google.api.field_behavior) = REQUIRED];
513}
514
515// The request message for
516// [ConversationModels.DeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeployConversationModel]
517message DeployConversationModelRequest {
518  // Required. The conversation model to deploy. Format:
519  // `projects/<Project ID>/conversationModels/<Conversation Model ID>`
520  string name = 1 [(google.api.field_behavior) = REQUIRED];
521}
522
523// The request message for
524// [ConversationModels.UndeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.UndeployConversationModel]
525message UndeployConversationModelRequest {
526  // Required. The conversation model to undeploy. Format:
527  // `projects/<Project ID>/conversationModels/<Conversation Model ID>`
528  string name = 1 [(google.api.field_behavior) = REQUIRED];
529}
530
531// The request message for
532// [ConversationModels.GetConversationModelEvaluation][google.cloud.dialogflow.v2.ConversationModels.GetConversationModelEvaluation]
533message GetConversationModelEvaluationRequest {
534  // Required. The conversation model evaluation resource name. Format:
535  // `projects/<Project ID>/conversationModels/<Conversation Model
536  // ID>/evaluations/<Evaluation ID>`
537  string name = 1 [(google.api.field_behavior) = REQUIRED];
538}
539
540// The request message for
541// [ConversationModels.ListConversationModelEvaluations][google.cloud.dialogflow.v2.ConversationModels.ListConversationModelEvaluations]
542message ListConversationModelEvaluationsRequest {
543  // Required. The conversation model resource name. Format:
544  // `projects/<Project ID>/conversationModels/<Conversation Model ID>`
545  string parent = 1 [(google.api.field_behavior) = REQUIRED];
546
547  // Optional. Maximum number of evaluations to return in a
548  // single page. By default 100 and at most 1000.
549  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
550
551  // Optional. The next_page_token value returned from a previous list request.
552  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
553}
554
555// The response message for
556// [ConversationModels.ListConversationModelEvaluations][google.cloud.dialogflow.v2.ConversationModels.ListConversationModelEvaluations]
557message ListConversationModelEvaluationsResponse {
558  // The list of evaluations to return.
559  repeated ConversationModelEvaluation conversation_model_evaluations = 1;
560
561  // Token to retrieve the next page of results, or empty if there are no more
562  // results in the list.
563  string next_page_token = 2;
564}
565
566// The request message for
567// [ConversationModels.CreateConversationModelEvaluation][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModelEvaluation]
568message CreateConversationModelEvaluationRequest {
569  // Required. The conversation model resource name. Format:
570  // `projects/<Project ID>/locations/<Location
571  // ID>/conversationModels/<Conversation Model ID>`
572  string parent = 1 [
573    (google.api.field_behavior) = REQUIRED,
574    (google.api.resource_reference) = {
575      child_type: "dialogflow.googleapis.com/ConversationModelEvaluation"
576    }
577  ];
578
579  // Required. The conversation model evaluation to be created.
580  ConversationModelEvaluation conversation_model_evaluation = 2
581      [(google.api.field_behavior) = REQUIRED];
582}
583
584// Metadata for a
585// [ConversationModels.CreateConversationModel][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModel]
586// operation.
587message CreateConversationModelOperationMetadata {
588  // State of CreateConversationModel operation.
589  enum State {
590    // Invalid.
591    STATE_UNSPECIFIED = 0;
592
593    // Request is submitted, but training has not started yet.
594    // The model may remain in this state until there is enough capacity to
595    // start training.
596    PENDING = 1;
597
598    // The training has succeeded.
599    SUCCEEDED = 2;
600
601    // The training has succeeded.
602    FAILED = 3;
603
604    // The training has been cancelled.
605    CANCELLED = 4;
606
607    // The training is in cancelling state.
608    CANCELLING = 5;
609
610    // Custom model is training.
611    TRAINING = 6;
612  }
613
614  // The resource name of the conversation model. Format:
615  // `projects/<Project ID>/conversationModels/<Conversation Model Id>`
616  string conversation_model = 1;
617
618  // State of CreateConversationModel operation.
619  State state = 2;
620
621  // Timestamp when the request to create conversation model is submitted. The
622  // time is measured on server side.
623  google.protobuf.Timestamp create_time = 3;
624}
625
626// Metadata for a
627// [ConversationModels.DeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeployConversationModel]
628// operation.
629message DeployConversationModelOperationMetadata {
630  // The resource name of the conversation model. Format:
631  // `projects/<Project ID>/conversationModels/<Conversation Model Id>`
632  string conversation_model = 1;
633
634  // Timestamp when request to deploy conversation model was submitted. The time
635  // is measured on server side.
636  google.protobuf.Timestamp create_time = 3;
637}
638
639// Metadata for a
640// [ConversationModels.UndeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.UndeployConversationModel]
641// operation.
642message UndeployConversationModelOperationMetadata {
643  // The resource name of the conversation model. Format:
644  // `projects/<Project ID>/conversationModels/<Conversation Model Id>`
645  string conversation_model = 1;
646
647  // Timestamp when the request to undeploy conversation model was submitted.
648  // The time is measured on server side.
649  google.protobuf.Timestamp create_time = 3;
650}
651
652// Metadata for a
653// [ConversationModels.DeleteConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeleteConversationModel]
654// operation.
655message DeleteConversationModelOperationMetadata {
656  // The resource name of the conversation model. Format:
657  // `projects/<Project ID>/conversationModels/<Conversation Model Id>`
658  string conversation_model = 1;
659
660  // Timestamp when delete conversation model request was created. The time is
661  // measured on server side.
662  google.protobuf.Timestamp create_time = 3;
663}
664
665// Metadata for a
666// [ConversationModels.CreateConversationModelEvaluation][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModelEvaluation]
667// operation.
668message CreateConversationModelEvaluationOperationMetadata {
669  // State of CreateConversationModel operation.
670  enum State {
671    // Operation status not specified.
672    STATE_UNSPECIFIED = 0;
673
674    // The operation is being prepared.
675    INITIALIZING = 1;
676
677    // The operation is running.
678    RUNNING = 2;
679
680    // The operation is cancelled.
681    CANCELLED = 3;
682
683    // The operation has succeeded.
684    SUCCEEDED = 4;
685
686    // The operation has failed.
687    FAILED = 5;
688  }
689
690  // The resource name of the conversation model. Format:
691  // `projects/<Project ID>/locations/<Location
692  // ID>/conversationModels/<Conversation Model Id>/evaluations/<Evaluation Id>`
693  string conversation_model_evaluation = 1;
694
695  // The resource name of the conversation model. Format:
696  // `projects/<Project ID>/locations/<Location
697  // ID>/conversationModels/<Conversation Model Id>`
698  string conversation_model = 4;
699
700  // State of CreateConversationModel operation.
701  State state = 2;
702
703  // Timestamp when the request to create conversation model was submitted. The
704  // time is measured on server side.
705  google.protobuf.Timestamp create_time = 3;
706}
707