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