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 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.26.0 18// protoc v3.12.2 19// source: google/cloud/dialogflow/cx/v3/test_case.proto 20 21package cx 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 longrunning "google.golang.org/genproto/googleapis/longrunning" 30 status "google.golang.org/genproto/googleapis/rpc/status" 31 grpc "google.golang.org/grpc" 32 codes "google.golang.org/grpc/codes" 33 status1 "google.golang.org/grpc/status" 34 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 35 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 36 emptypb "google.golang.org/protobuf/types/known/emptypb" 37 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 38 structpb "google.golang.org/protobuf/types/known/structpb" 39 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 40) 41 42const ( 43 // Verify that this generated code is sufficiently up-to-date. 44 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 45 // Verify that runtime/protoimpl is sufficiently up-to-date. 46 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 47) 48 49// The test result for a test case and an agent environment. 50type TestResult int32 51 52const ( 53 // Not specified. Should never be used. 54 TestResult_TEST_RESULT_UNSPECIFIED TestResult = 0 55 // The test passed. 56 TestResult_PASSED TestResult = 1 57 // The test did not pass. 58 TestResult_FAILED TestResult = 2 59) 60 61// Enum value maps for TestResult. 62var ( 63 TestResult_name = map[int32]string{ 64 0: "TEST_RESULT_UNSPECIFIED", 65 1: "PASSED", 66 2: "FAILED", 67 } 68 TestResult_value = map[string]int32{ 69 "TEST_RESULT_UNSPECIFIED": 0, 70 "PASSED": 1, 71 "FAILED": 2, 72 } 73) 74 75func (x TestResult) Enum() *TestResult { 76 p := new(TestResult) 77 *p = x 78 return p 79} 80 81func (x TestResult) String() string { 82 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 83} 84 85func (TestResult) Descriptor() protoreflect.EnumDescriptor { 86 return file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[0].Descriptor() 87} 88 89func (TestResult) Type() protoreflect.EnumType { 90 return &file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[0] 91} 92 93func (x TestResult) Number() protoreflect.EnumNumber { 94 return protoreflect.EnumNumber(x) 95} 96 97// Deprecated: Use TestResult.Descriptor instead. 98func (TestResult) EnumDescriptor() ([]byte, []int) { 99 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{0} 100} 101 102// What part of the message replay differs from the test case. 103type TestRunDifference_DiffType int32 104 105const ( 106 // Should never be used. 107 TestRunDifference_DIFF_TYPE_UNSPECIFIED TestRunDifference_DiffType = 0 108 // The intent. 109 TestRunDifference_INTENT TestRunDifference_DiffType = 1 110 // The page. 111 TestRunDifference_PAGE TestRunDifference_DiffType = 2 112 // The parameters. 113 TestRunDifference_PARAMETERS TestRunDifference_DiffType = 3 114 // The message utterance. 115 TestRunDifference_UTTERANCE TestRunDifference_DiffType = 4 116) 117 118// Enum value maps for TestRunDifference_DiffType. 119var ( 120 TestRunDifference_DiffType_name = map[int32]string{ 121 0: "DIFF_TYPE_UNSPECIFIED", 122 1: "INTENT", 123 2: "PAGE", 124 3: "PARAMETERS", 125 4: "UTTERANCE", 126 } 127 TestRunDifference_DiffType_value = map[string]int32{ 128 "DIFF_TYPE_UNSPECIFIED": 0, 129 "INTENT": 1, 130 "PAGE": 2, 131 "PARAMETERS": 3, 132 "UTTERANCE": 4, 133 } 134) 135 136func (x TestRunDifference_DiffType) Enum() *TestRunDifference_DiffType { 137 p := new(TestRunDifference_DiffType) 138 *p = x 139 return p 140} 141 142func (x TestRunDifference_DiffType) String() string { 143 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 144} 145 146func (TestRunDifference_DiffType) Descriptor() protoreflect.EnumDescriptor { 147 return file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[1].Descriptor() 148} 149 150func (TestRunDifference_DiffType) Type() protoreflect.EnumType { 151 return &file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[1] 152} 153 154func (x TestRunDifference_DiffType) Number() protoreflect.EnumNumber { 155 return protoreflect.EnumNumber(x) 156} 157 158// Deprecated: Use TestRunDifference_DiffType.Descriptor instead. 159func (TestRunDifference_DiffType) EnumDescriptor() ([]byte, []int) { 160 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{4, 0} 161} 162 163// The type of coverage score requested. 164type CalculateCoverageRequest_CoverageType int32 165 166const ( 167 // Should never be used. 168 CalculateCoverageRequest_COVERAGE_TYPE_UNSPECIFIED CalculateCoverageRequest_CoverageType = 0 169 // Intent coverage. 170 CalculateCoverageRequest_INTENT CalculateCoverageRequest_CoverageType = 1 171 // Page transition coverage. 172 CalculateCoverageRequest_PAGE_TRANSITION CalculateCoverageRequest_CoverageType = 2 173 // Transition route group coverage. 174 CalculateCoverageRequest_TRANSITION_ROUTE_GROUP CalculateCoverageRequest_CoverageType = 3 175) 176 177// Enum value maps for CalculateCoverageRequest_CoverageType. 178var ( 179 CalculateCoverageRequest_CoverageType_name = map[int32]string{ 180 0: "COVERAGE_TYPE_UNSPECIFIED", 181 1: "INTENT", 182 2: "PAGE_TRANSITION", 183 3: "TRANSITION_ROUTE_GROUP", 184 } 185 CalculateCoverageRequest_CoverageType_value = map[string]int32{ 186 "COVERAGE_TYPE_UNSPECIFIED": 0, 187 "INTENT": 1, 188 "PAGE_TRANSITION": 2, 189 "TRANSITION_ROUTE_GROUP": 3, 190 } 191) 192 193func (x CalculateCoverageRequest_CoverageType) Enum() *CalculateCoverageRequest_CoverageType { 194 p := new(CalculateCoverageRequest_CoverageType) 195 *p = x 196 return p 197} 198 199func (x CalculateCoverageRequest_CoverageType) String() string { 200 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 201} 202 203func (CalculateCoverageRequest_CoverageType) Descriptor() protoreflect.EnumDescriptor { 204 return file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[2].Descriptor() 205} 206 207func (CalculateCoverageRequest_CoverageType) Type() protoreflect.EnumType { 208 return &file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[2] 209} 210 211func (x CalculateCoverageRequest_CoverageType) Number() protoreflect.EnumNumber { 212 return protoreflect.EnumNumber(x) 213} 214 215// Deprecated: Use CalculateCoverageRequest_CoverageType.Descriptor instead. 216func (CalculateCoverageRequest_CoverageType) EnumDescriptor() ([]byte, []int) { 217 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{8, 0} 218} 219 220// Specifies how much test case information to include in the response. 221type ListTestCasesRequest_TestCaseView int32 222 223const ( 224 // The default / unset value. 225 // The API will default to the BASIC view. 226 ListTestCasesRequest_TEST_CASE_VIEW_UNSPECIFIED ListTestCasesRequest_TestCaseView = 0 227 // Include basic metadata about the test case, but not the conversation 228 // turns. This is the default value. 229 ListTestCasesRequest_BASIC ListTestCasesRequest_TestCaseView = 1 230 // Include everything. 231 ListTestCasesRequest_FULL ListTestCasesRequest_TestCaseView = 2 232) 233 234// Enum value maps for ListTestCasesRequest_TestCaseView. 235var ( 236 ListTestCasesRequest_TestCaseView_name = map[int32]string{ 237 0: "TEST_CASE_VIEW_UNSPECIFIED", 238 1: "BASIC", 239 2: "FULL", 240 } 241 ListTestCasesRequest_TestCaseView_value = map[string]int32{ 242 "TEST_CASE_VIEW_UNSPECIFIED": 0, 243 "BASIC": 1, 244 "FULL": 2, 245 } 246) 247 248func (x ListTestCasesRequest_TestCaseView) Enum() *ListTestCasesRequest_TestCaseView { 249 p := new(ListTestCasesRequest_TestCaseView) 250 *p = x 251 return p 252} 253 254func (x ListTestCasesRequest_TestCaseView) String() string { 255 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 256} 257 258func (ListTestCasesRequest_TestCaseView) Descriptor() protoreflect.EnumDescriptor { 259 return file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[3].Descriptor() 260} 261 262func (ListTestCasesRequest_TestCaseView) Type() protoreflect.EnumType { 263 return &file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[3] 264} 265 266func (x ListTestCasesRequest_TestCaseView) Number() protoreflect.EnumNumber { 267 return protoreflect.EnumNumber(x) 268} 269 270// Deprecated: Use ListTestCasesRequest_TestCaseView.Descriptor instead. 271func (ListTestCasesRequest_TestCaseView) EnumDescriptor() ([]byte, []int) { 272 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{10, 0} 273} 274 275// Data format of the exported test cases. 276type ExportTestCasesRequest_DataFormat int32 277 278const ( 279 // Unspecified format. 280 ExportTestCasesRequest_DATA_FORMAT_UNSPECIFIED ExportTestCasesRequest_DataFormat = 0 281 // Raw bytes. 282 ExportTestCasesRequest_BLOB ExportTestCasesRequest_DataFormat = 1 283 // JSON format. 284 ExportTestCasesRequest_JSON ExportTestCasesRequest_DataFormat = 2 285) 286 287// Enum value maps for ExportTestCasesRequest_DataFormat. 288var ( 289 ExportTestCasesRequest_DataFormat_name = map[int32]string{ 290 0: "DATA_FORMAT_UNSPECIFIED", 291 1: "BLOB", 292 2: "JSON", 293 } 294 ExportTestCasesRequest_DataFormat_value = map[string]int32{ 295 "DATA_FORMAT_UNSPECIFIED": 0, 296 "BLOB": 1, 297 "JSON": 2, 298 } 299) 300 301func (x ExportTestCasesRequest_DataFormat) Enum() *ExportTestCasesRequest_DataFormat { 302 p := new(ExportTestCasesRequest_DataFormat) 303 *p = x 304 return p 305} 306 307func (x ExportTestCasesRequest_DataFormat) String() string { 308 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 309} 310 311func (ExportTestCasesRequest_DataFormat) Descriptor() protoreflect.EnumDescriptor { 312 return file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[4].Descriptor() 313} 314 315func (ExportTestCasesRequest_DataFormat) Type() protoreflect.EnumType { 316 return &file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes[4] 317} 318 319func (x ExportTestCasesRequest_DataFormat) Number() protoreflect.EnumNumber { 320 return protoreflect.EnumNumber(x) 321} 322 323// Deprecated: Use ExportTestCasesRequest_DataFormat.Descriptor instead. 324func (ExportTestCasesRequest_DataFormat) EnumDescriptor() ([]byte, []int) { 325 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{27, 0} 326} 327 328// Represents a test case. 329type TestCase struct { 330 state protoimpl.MessageState 331 sizeCache protoimpl.SizeCache 332 unknownFields protoimpl.UnknownFields 333 334 // The unique identifier of the test case. 335 // [TestCases.CreateTestCase][google.cloud.dialogflow.cx.v3.TestCases.CreateTestCase] will populate the name automatically. 336 // Otherwise use format: `projects/<Project ID>/locations/<LocationID>/agents/ 337 // <AgentID>/testCases/<TestCase ID>`. 338 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 339 // Tags are short descriptions that users may apply to test cases for 340 // organizational and filtering purposes. Each tag should start with "#" and 341 // has a limit of 30 characters. 342 Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"` 343 // Required. The human-readable name of the test case, unique within the agent. Limit of 344 // 200 characters. 345 DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 346 // Additional freeform notes about the test case. Limit of 400 characters. 347 Notes string `protobuf:"bytes,4,opt,name=notes,proto3" json:"notes,omitempty"` 348 // Config for the test case. 349 TestConfig *TestConfig `protobuf:"bytes,13,opt,name=test_config,json=testConfig,proto3" json:"test_config,omitempty"` 350 // The conversation turns uttered when the test case was created, in 351 // chronological order. These include the canonical set of agent utterances 352 // that should occur when the agent is working properly. 353 TestCaseConversationTurns []*ConversationTurn `protobuf:"bytes,5,rep,name=test_case_conversation_turns,json=testCaseConversationTurns,proto3" json:"test_case_conversation_turns,omitempty"` 354 // Output only. When the test was created. 355 CreationTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` 356 // The latest test result. 357 LastTestResult *TestCaseResult `protobuf:"bytes,12,opt,name=last_test_result,json=lastTestResult,proto3" json:"last_test_result,omitempty"` 358} 359 360func (x *TestCase) Reset() { 361 *x = TestCase{} 362 if protoimpl.UnsafeEnabled { 363 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[0] 364 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 365 ms.StoreMessageInfo(mi) 366 } 367} 368 369func (x *TestCase) String() string { 370 return protoimpl.X.MessageStringOf(x) 371} 372 373func (*TestCase) ProtoMessage() {} 374 375func (x *TestCase) ProtoReflect() protoreflect.Message { 376 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[0] 377 if protoimpl.UnsafeEnabled && x != nil { 378 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 379 if ms.LoadMessageInfo() == nil { 380 ms.StoreMessageInfo(mi) 381 } 382 return ms 383 } 384 return mi.MessageOf(x) 385} 386 387// Deprecated: Use TestCase.ProtoReflect.Descriptor instead. 388func (*TestCase) Descriptor() ([]byte, []int) { 389 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{0} 390} 391 392func (x *TestCase) GetName() string { 393 if x != nil { 394 return x.Name 395 } 396 return "" 397} 398 399func (x *TestCase) GetTags() []string { 400 if x != nil { 401 return x.Tags 402 } 403 return nil 404} 405 406func (x *TestCase) GetDisplayName() string { 407 if x != nil { 408 return x.DisplayName 409 } 410 return "" 411} 412 413func (x *TestCase) GetNotes() string { 414 if x != nil { 415 return x.Notes 416 } 417 return "" 418} 419 420func (x *TestCase) GetTestConfig() *TestConfig { 421 if x != nil { 422 return x.TestConfig 423 } 424 return nil 425} 426 427func (x *TestCase) GetTestCaseConversationTurns() []*ConversationTurn { 428 if x != nil { 429 return x.TestCaseConversationTurns 430 } 431 return nil 432} 433 434func (x *TestCase) GetCreationTime() *timestamppb.Timestamp { 435 if x != nil { 436 return x.CreationTime 437 } 438 return nil 439} 440 441func (x *TestCase) GetLastTestResult() *TestCaseResult { 442 if x != nil { 443 return x.LastTestResult 444 } 445 return nil 446} 447 448// Represents a result from running a test case in an agent environment. 449type TestCaseResult struct { 450 state protoimpl.MessageState 451 sizeCache protoimpl.SizeCache 452 unknownFields protoimpl.UnknownFields 453 454 // The resource name for the test case result. Format: 455 // `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/testCases/ 456 // <TestCase ID>/results/<TestCaseResult ID>`. 457 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 458 // Environment where the test was run. If not set, it indicates the draft 459 // environment. 460 Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` 461 // The conversation turns uttered during the test case replay in chronological 462 // order. 463 ConversationTurns []*ConversationTurn `protobuf:"bytes,3,rep,name=conversation_turns,json=conversationTurns,proto3" json:"conversation_turns,omitempty"` 464 // Whether the test case passed in the agent environment. 465 TestResult TestResult `protobuf:"varint,4,opt,name=test_result,json=testResult,proto3,enum=google.cloud.dialogflow.cx.v3.TestResult" json:"test_result,omitempty"` 466 // The time that the test was run. 467 TestTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=test_time,json=testTime,proto3" json:"test_time,omitempty"` 468} 469 470func (x *TestCaseResult) Reset() { 471 *x = TestCaseResult{} 472 if protoimpl.UnsafeEnabled { 473 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[1] 474 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 475 ms.StoreMessageInfo(mi) 476 } 477} 478 479func (x *TestCaseResult) String() string { 480 return protoimpl.X.MessageStringOf(x) 481} 482 483func (*TestCaseResult) ProtoMessage() {} 484 485func (x *TestCaseResult) ProtoReflect() protoreflect.Message { 486 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[1] 487 if protoimpl.UnsafeEnabled && x != nil { 488 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 489 if ms.LoadMessageInfo() == nil { 490 ms.StoreMessageInfo(mi) 491 } 492 return ms 493 } 494 return mi.MessageOf(x) 495} 496 497// Deprecated: Use TestCaseResult.ProtoReflect.Descriptor instead. 498func (*TestCaseResult) Descriptor() ([]byte, []int) { 499 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{1} 500} 501 502func (x *TestCaseResult) GetName() string { 503 if x != nil { 504 return x.Name 505 } 506 return "" 507} 508 509func (x *TestCaseResult) GetEnvironment() string { 510 if x != nil { 511 return x.Environment 512 } 513 return "" 514} 515 516func (x *TestCaseResult) GetConversationTurns() []*ConversationTurn { 517 if x != nil { 518 return x.ConversationTurns 519 } 520 return nil 521} 522 523func (x *TestCaseResult) GetTestResult() TestResult { 524 if x != nil { 525 return x.TestResult 526 } 527 return TestResult_TEST_RESULT_UNSPECIFIED 528} 529 530func (x *TestCaseResult) GetTestTime() *timestamppb.Timestamp { 531 if x != nil { 532 return x.TestTime 533 } 534 return nil 535} 536 537// Represents configurations for a test case. 538type TestConfig struct { 539 state protoimpl.MessageState 540 sizeCache protoimpl.SizeCache 541 unknownFields protoimpl.UnknownFields 542 543 // Session parameters to be compared when calculating differences. 544 TrackingParameters []string `protobuf:"bytes,1,rep,name=tracking_parameters,json=trackingParameters,proto3" json:"tracking_parameters,omitempty"` 545 // Flow name. If not set, default start flow is assumed. 546 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 547 // ID>/flows/<Flow ID>`. 548 Flow string `protobuf:"bytes,2,opt,name=flow,proto3" json:"flow,omitempty"` 549} 550 551func (x *TestConfig) Reset() { 552 *x = TestConfig{} 553 if protoimpl.UnsafeEnabled { 554 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[2] 555 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 556 ms.StoreMessageInfo(mi) 557 } 558} 559 560func (x *TestConfig) String() string { 561 return protoimpl.X.MessageStringOf(x) 562} 563 564func (*TestConfig) ProtoMessage() {} 565 566func (x *TestConfig) ProtoReflect() protoreflect.Message { 567 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[2] 568 if protoimpl.UnsafeEnabled && x != nil { 569 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 570 if ms.LoadMessageInfo() == nil { 571 ms.StoreMessageInfo(mi) 572 } 573 return ms 574 } 575 return mi.MessageOf(x) 576} 577 578// Deprecated: Use TestConfig.ProtoReflect.Descriptor instead. 579func (*TestConfig) Descriptor() ([]byte, []int) { 580 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{2} 581} 582 583func (x *TestConfig) GetTrackingParameters() []string { 584 if x != nil { 585 return x.TrackingParameters 586 } 587 return nil 588} 589 590func (x *TestConfig) GetFlow() string { 591 if x != nil { 592 return x.Flow 593 } 594 return "" 595} 596 597// One interaction between a human and virtual agent. The human provides some 598// input and the virtual agent provides a response. 599type ConversationTurn struct { 600 state protoimpl.MessageState 601 sizeCache protoimpl.SizeCache 602 unknownFields protoimpl.UnknownFields 603 604 // The user input. 605 UserInput *ConversationTurn_UserInput `protobuf:"bytes,1,opt,name=user_input,json=userInput,proto3" json:"user_input,omitempty"` 606 // The virtual agent output. 607 VirtualAgentOutput *ConversationTurn_VirtualAgentOutput `protobuf:"bytes,2,opt,name=virtual_agent_output,json=virtualAgentOutput,proto3" json:"virtual_agent_output,omitempty"` 608} 609 610func (x *ConversationTurn) Reset() { 611 *x = ConversationTurn{} 612 if protoimpl.UnsafeEnabled { 613 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[3] 614 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 615 ms.StoreMessageInfo(mi) 616 } 617} 618 619func (x *ConversationTurn) String() string { 620 return protoimpl.X.MessageStringOf(x) 621} 622 623func (*ConversationTurn) ProtoMessage() {} 624 625func (x *ConversationTurn) ProtoReflect() protoreflect.Message { 626 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[3] 627 if protoimpl.UnsafeEnabled && x != nil { 628 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 629 if ms.LoadMessageInfo() == nil { 630 ms.StoreMessageInfo(mi) 631 } 632 return ms 633 } 634 return mi.MessageOf(x) 635} 636 637// Deprecated: Use ConversationTurn.ProtoReflect.Descriptor instead. 638func (*ConversationTurn) Descriptor() ([]byte, []int) { 639 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{3} 640} 641 642func (x *ConversationTurn) GetUserInput() *ConversationTurn_UserInput { 643 if x != nil { 644 return x.UserInput 645 } 646 return nil 647} 648 649func (x *ConversationTurn) GetVirtualAgentOutput() *ConversationTurn_VirtualAgentOutput { 650 if x != nil { 651 return x.VirtualAgentOutput 652 } 653 return nil 654} 655 656// The description of differences between original and replayed agent output. 657type TestRunDifference struct { 658 state protoimpl.MessageState 659 sizeCache protoimpl.SizeCache 660 unknownFields protoimpl.UnknownFields 661 662 // The type of diff. 663 Type TestRunDifference_DiffType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.dialogflow.cx.v3.TestRunDifference_DiffType" json:"type,omitempty"` 664 // A description of the diff, showing the actual output vs expected output. 665 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 666} 667 668func (x *TestRunDifference) Reset() { 669 *x = TestRunDifference{} 670 if protoimpl.UnsafeEnabled { 671 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[4] 672 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 673 ms.StoreMessageInfo(mi) 674 } 675} 676 677func (x *TestRunDifference) String() string { 678 return protoimpl.X.MessageStringOf(x) 679} 680 681func (*TestRunDifference) ProtoMessage() {} 682 683func (x *TestRunDifference) ProtoReflect() protoreflect.Message { 684 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[4] 685 if protoimpl.UnsafeEnabled && x != nil { 686 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 687 if ms.LoadMessageInfo() == nil { 688 ms.StoreMessageInfo(mi) 689 } 690 return ms 691 } 692 return mi.MessageOf(x) 693} 694 695// Deprecated: Use TestRunDifference.ProtoReflect.Descriptor instead. 696func (*TestRunDifference) Descriptor() ([]byte, []int) { 697 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{4} 698} 699 700func (x *TestRunDifference) GetType() TestRunDifference_DiffType { 701 if x != nil { 702 return x.Type 703 } 704 return TestRunDifference_DIFF_TYPE_UNSPECIFIED 705} 706 707func (x *TestRunDifference) GetDescription() string { 708 if x != nil { 709 return x.Description 710 } 711 return "" 712} 713 714// Transition coverage represents the percentage of all possible page 715// transitions (page-level transition routes and event handlers, excluding 716// transition route groups) present within any of a parent's test cases. 717type TransitionCoverage struct { 718 state protoimpl.MessageState 719 sizeCache protoimpl.SizeCache 720 unknownFields protoimpl.UnknownFields 721 722 // The list of Transitions present in the agent. 723 Transitions []*TransitionCoverage_Transition `protobuf:"bytes,1,rep,name=transitions,proto3" json:"transitions,omitempty"` 724 // The percent of transitions in the agent that are covered. 725 CoverageScore float32 `protobuf:"fixed32,2,opt,name=coverage_score,json=coverageScore,proto3" json:"coverage_score,omitempty"` 726} 727 728func (x *TransitionCoverage) Reset() { 729 *x = TransitionCoverage{} 730 if protoimpl.UnsafeEnabled { 731 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[5] 732 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 733 ms.StoreMessageInfo(mi) 734 } 735} 736 737func (x *TransitionCoverage) String() string { 738 return protoimpl.X.MessageStringOf(x) 739} 740 741func (*TransitionCoverage) ProtoMessage() {} 742 743func (x *TransitionCoverage) ProtoReflect() protoreflect.Message { 744 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[5] 745 if protoimpl.UnsafeEnabled && x != nil { 746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 747 if ms.LoadMessageInfo() == nil { 748 ms.StoreMessageInfo(mi) 749 } 750 return ms 751 } 752 return mi.MessageOf(x) 753} 754 755// Deprecated: Use TransitionCoverage.ProtoReflect.Descriptor instead. 756func (*TransitionCoverage) Descriptor() ([]byte, []int) { 757 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{5} 758} 759 760func (x *TransitionCoverage) GetTransitions() []*TransitionCoverage_Transition { 761 if x != nil { 762 return x.Transitions 763 } 764 return nil 765} 766 767func (x *TransitionCoverage) GetCoverageScore() float32 { 768 if x != nil { 769 return x.CoverageScore 770 } 771 return 0 772} 773 774// Transition route group coverage represents the percentage of all possible 775// transition routes present within any of a parent's test cases. The results 776// are grouped by the transition route group. 777type TransitionRouteGroupCoverage struct { 778 state protoimpl.MessageState 779 sizeCache protoimpl.SizeCache 780 unknownFields protoimpl.UnknownFields 781 782 // Transition route group coverages. 783 Coverages []*TransitionRouteGroupCoverage_Coverage `protobuf:"bytes,1,rep,name=coverages,proto3" json:"coverages,omitempty"` 784 // The percent of transition routes in all the transition route groups that 785 // are covered. 786 CoverageScore float32 `protobuf:"fixed32,2,opt,name=coverage_score,json=coverageScore,proto3" json:"coverage_score,omitempty"` 787} 788 789func (x *TransitionRouteGroupCoverage) Reset() { 790 *x = TransitionRouteGroupCoverage{} 791 if protoimpl.UnsafeEnabled { 792 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[6] 793 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 794 ms.StoreMessageInfo(mi) 795 } 796} 797 798func (x *TransitionRouteGroupCoverage) String() string { 799 return protoimpl.X.MessageStringOf(x) 800} 801 802func (*TransitionRouteGroupCoverage) ProtoMessage() {} 803 804func (x *TransitionRouteGroupCoverage) ProtoReflect() protoreflect.Message { 805 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[6] 806 if protoimpl.UnsafeEnabled && x != nil { 807 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 808 if ms.LoadMessageInfo() == nil { 809 ms.StoreMessageInfo(mi) 810 } 811 return ms 812 } 813 return mi.MessageOf(x) 814} 815 816// Deprecated: Use TransitionRouteGroupCoverage.ProtoReflect.Descriptor instead. 817func (*TransitionRouteGroupCoverage) Descriptor() ([]byte, []int) { 818 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{6} 819} 820 821func (x *TransitionRouteGroupCoverage) GetCoverages() []*TransitionRouteGroupCoverage_Coverage { 822 if x != nil { 823 return x.Coverages 824 } 825 return nil 826} 827 828func (x *TransitionRouteGroupCoverage) GetCoverageScore() float32 { 829 if x != nil { 830 return x.CoverageScore 831 } 832 return 0 833} 834 835// Intent coverage represents the percentage of all possible intents in the 836// agent that are triggered in any of a parent's test cases. 837type IntentCoverage struct { 838 state protoimpl.MessageState 839 sizeCache protoimpl.SizeCache 840 unknownFields protoimpl.UnknownFields 841 842 // The list of Intents present in the agent 843 Intents []*IntentCoverage_Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"` 844 // The percent of intents in the agent that are covered. 845 CoverageScore float32 `protobuf:"fixed32,2,opt,name=coverage_score,json=coverageScore,proto3" json:"coverage_score,omitempty"` 846} 847 848func (x *IntentCoverage) Reset() { 849 *x = IntentCoverage{} 850 if protoimpl.UnsafeEnabled { 851 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[7] 852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 853 ms.StoreMessageInfo(mi) 854 } 855} 856 857func (x *IntentCoverage) String() string { 858 return protoimpl.X.MessageStringOf(x) 859} 860 861func (*IntentCoverage) ProtoMessage() {} 862 863func (x *IntentCoverage) ProtoReflect() protoreflect.Message { 864 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[7] 865 if protoimpl.UnsafeEnabled && x != nil { 866 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 867 if ms.LoadMessageInfo() == nil { 868 ms.StoreMessageInfo(mi) 869 } 870 return ms 871 } 872 return mi.MessageOf(x) 873} 874 875// Deprecated: Use IntentCoverage.ProtoReflect.Descriptor instead. 876func (*IntentCoverage) Descriptor() ([]byte, []int) { 877 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{7} 878} 879 880func (x *IntentCoverage) GetIntents() []*IntentCoverage_Intent { 881 if x != nil { 882 return x.Intents 883 } 884 return nil 885} 886 887func (x *IntentCoverage) GetCoverageScore() float32 { 888 if x != nil { 889 return x.CoverageScore 890 } 891 return 0 892} 893 894// The request message for [TestCases.CalculateCoverage][google.cloud.dialogflow.cx.v3.TestCases.CalculateCoverage]. 895type CalculateCoverageRequest struct { 896 state protoimpl.MessageState 897 sizeCache protoimpl.SizeCache 898 unknownFields protoimpl.UnknownFields 899 900 // Required. The agent to calculate coverage for. 901 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`. 902 Agent string `protobuf:"bytes,3,opt,name=agent,proto3" json:"agent,omitempty"` 903 // Required. The type of coverage requested. 904 Type CalculateCoverageRequest_CoverageType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.dialogflow.cx.v3.CalculateCoverageRequest_CoverageType" json:"type,omitempty"` 905} 906 907func (x *CalculateCoverageRequest) Reset() { 908 *x = CalculateCoverageRequest{} 909 if protoimpl.UnsafeEnabled { 910 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[8] 911 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 912 ms.StoreMessageInfo(mi) 913 } 914} 915 916func (x *CalculateCoverageRequest) String() string { 917 return protoimpl.X.MessageStringOf(x) 918} 919 920func (*CalculateCoverageRequest) ProtoMessage() {} 921 922func (x *CalculateCoverageRequest) ProtoReflect() protoreflect.Message { 923 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[8] 924 if protoimpl.UnsafeEnabled && x != nil { 925 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 926 if ms.LoadMessageInfo() == nil { 927 ms.StoreMessageInfo(mi) 928 } 929 return ms 930 } 931 return mi.MessageOf(x) 932} 933 934// Deprecated: Use CalculateCoverageRequest.ProtoReflect.Descriptor instead. 935func (*CalculateCoverageRequest) Descriptor() ([]byte, []int) { 936 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{8} 937} 938 939func (x *CalculateCoverageRequest) GetAgent() string { 940 if x != nil { 941 return x.Agent 942 } 943 return "" 944} 945 946func (x *CalculateCoverageRequest) GetType() CalculateCoverageRequest_CoverageType { 947 if x != nil { 948 return x.Type 949 } 950 return CalculateCoverageRequest_COVERAGE_TYPE_UNSPECIFIED 951} 952 953// The response message for [TestCases.CalculateCoverage][google.cloud.dialogflow.cx.v3.TestCases.CalculateCoverage]. 954type CalculateCoverageResponse struct { 955 state protoimpl.MessageState 956 sizeCache protoimpl.SizeCache 957 unknownFields protoimpl.UnknownFields 958 959 // The agent to calculate coverage for. 960 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`. 961 Agent string `protobuf:"bytes,5,opt,name=agent,proto3" json:"agent,omitempty"` 962 // The type of coverage requested. 963 // 964 // Types that are assignable to CoverageType: 965 // *CalculateCoverageResponse_IntentCoverage 966 // *CalculateCoverageResponse_TransitionCoverage 967 // *CalculateCoverageResponse_RouteGroupCoverage 968 CoverageType isCalculateCoverageResponse_CoverageType `protobuf_oneof:"coverage_type"` 969} 970 971func (x *CalculateCoverageResponse) Reset() { 972 *x = CalculateCoverageResponse{} 973 if protoimpl.UnsafeEnabled { 974 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[9] 975 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 976 ms.StoreMessageInfo(mi) 977 } 978} 979 980func (x *CalculateCoverageResponse) String() string { 981 return protoimpl.X.MessageStringOf(x) 982} 983 984func (*CalculateCoverageResponse) ProtoMessage() {} 985 986func (x *CalculateCoverageResponse) ProtoReflect() protoreflect.Message { 987 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[9] 988 if protoimpl.UnsafeEnabled && x != nil { 989 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 990 if ms.LoadMessageInfo() == nil { 991 ms.StoreMessageInfo(mi) 992 } 993 return ms 994 } 995 return mi.MessageOf(x) 996} 997 998// Deprecated: Use CalculateCoverageResponse.ProtoReflect.Descriptor instead. 999func (*CalculateCoverageResponse) Descriptor() ([]byte, []int) { 1000 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{9} 1001} 1002 1003func (x *CalculateCoverageResponse) GetAgent() string { 1004 if x != nil { 1005 return x.Agent 1006 } 1007 return "" 1008} 1009 1010func (m *CalculateCoverageResponse) GetCoverageType() isCalculateCoverageResponse_CoverageType { 1011 if m != nil { 1012 return m.CoverageType 1013 } 1014 return nil 1015} 1016 1017func (x *CalculateCoverageResponse) GetIntentCoverage() *IntentCoverage { 1018 if x, ok := x.GetCoverageType().(*CalculateCoverageResponse_IntentCoverage); ok { 1019 return x.IntentCoverage 1020 } 1021 return nil 1022} 1023 1024func (x *CalculateCoverageResponse) GetTransitionCoverage() *TransitionCoverage { 1025 if x, ok := x.GetCoverageType().(*CalculateCoverageResponse_TransitionCoverage); ok { 1026 return x.TransitionCoverage 1027 } 1028 return nil 1029} 1030 1031func (x *CalculateCoverageResponse) GetRouteGroupCoverage() *TransitionRouteGroupCoverage { 1032 if x, ok := x.GetCoverageType().(*CalculateCoverageResponse_RouteGroupCoverage); ok { 1033 return x.RouteGroupCoverage 1034 } 1035 return nil 1036} 1037 1038type isCalculateCoverageResponse_CoverageType interface { 1039 isCalculateCoverageResponse_CoverageType() 1040} 1041 1042type CalculateCoverageResponse_IntentCoverage struct { 1043 // Intent coverage. 1044 IntentCoverage *IntentCoverage `protobuf:"bytes,2,opt,name=intent_coverage,json=intentCoverage,proto3,oneof"` 1045} 1046 1047type CalculateCoverageResponse_TransitionCoverage struct { 1048 // Transition (excluding transition route groups) coverage. 1049 TransitionCoverage *TransitionCoverage `protobuf:"bytes,4,opt,name=transition_coverage,json=transitionCoverage,proto3,oneof"` 1050} 1051 1052type CalculateCoverageResponse_RouteGroupCoverage struct { 1053 // Transition route group coverage. 1054 RouteGroupCoverage *TransitionRouteGroupCoverage `protobuf:"bytes,6,opt,name=route_group_coverage,json=routeGroupCoverage,proto3,oneof"` 1055} 1056 1057func (*CalculateCoverageResponse_IntentCoverage) isCalculateCoverageResponse_CoverageType() {} 1058 1059func (*CalculateCoverageResponse_TransitionCoverage) isCalculateCoverageResponse_CoverageType() {} 1060 1061func (*CalculateCoverageResponse_RouteGroupCoverage) isCalculateCoverageResponse_CoverageType() {} 1062 1063// The request message for [TestCases.ListTestCases][google.cloud.dialogflow.cx.v3.TestCases.ListTestCases]. 1064type ListTestCasesRequest struct { 1065 state protoimpl.MessageState 1066 sizeCache protoimpl.SizeCache 1067 unknownFields protoimpl.UnknownFields 1068 1069 // Required. The agent to list all pages for. 1070 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`. 1071 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1072 // The maximum number of items to return in a single page. By default 20. 1073 // Note that when TestCaseView = FULL, the maximum page size allowed is 20. 1074 // When TestCaseView = BASIC, the maximum page size allowed is 500. 1075 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 1076 // The next_page_token value returned from a previous list request. 1077 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 1078 // Specifies whether response should include all fields or just the metadata. 1079 View ListTestCasesRequest_TestCaseView `protobuf:"varint,4,opt,name=view,proto3,enum=google.cloud.dialogflow.cx.v3.ListTestCasesRequest_TestCaseView" json:"view,omitempty"` 1080} 1081 1082func (x *ListTestCasesRequest) Reset() { 1083 *x = ListTestCasesRequest{} 1084 if protoimpl.UnsafeEnabled { 1085 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[10] 1086 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1087 ms.StoreMessageInfo(mi) 1088 } 1089} 1090 1091func (x *ListTestCasesRequest) String() string { 1092 return protoimpl.X.MessageStringOf(x) 1093} 1094 1095func (*ListTestCasesRequest) ProtoMessage() {} 1096 1097func (x *ListTestCasesRequest) ProtoReflect() protoreflect.Message { 1098 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[10] 1099 if protoimpl.UnsafeEnabled && x != nil { 1100 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1101 if ms.LoadMessageInfo() == nil { 1102 ms.StoreMessageInfo(mi) 1103 } 1104 return ms 1105 } 1106 return mi.MessageOf(x) 1107} 1108 1109// Deprecated: Use ListTestCasesRequest.ProtoReflect.Descriptor instead. 1110func (*ListTestCasesRequest) Descriptor() ([]byte, []int) { 1111 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{10} 1112} 1113 1114func (x *ListTestCasesRequest) GetParent() string { 1115 if x != nil { 1116 return x.Parent 1117 } 1118 return "" 1119} 1120 1121func (x *ListTestCasesRequest) GetPageSize() int32 { 1122 if x != nil { 1123 return x.PageSize 1124 } 1125 return 0 1126} 1127 1128func (x *ListTestCasesRequest) GetPageToken() string { 1129 if x != nil { 1130 return x.PageToken 1131 } 1132 return "" 1133} 1134 1135func (x *ListTestCasesRequest) GetView() ListTestCasesRequest_TestCaseView { 1136 if x != nil { 1137 return x.View 1138 } 1139 return ListTestCasesRequest_TEST_CASE_VIEW_UNSPECIFIED 1140} 1141 1142// The response message for [TestCases.ListTestCases][google.cloud.dialogflow.cx.v3.TestCases.ListTestCases]. 1143type ListTestCasesResponse struct { 1144 state protoimpl.MessageState 1145 sizeCache protoimpl.SizeCache 1146 unknownFields protoimpl.UnknownFields 1147 1148 // The list of test cases. There will be a maximum number of items returned 1149 // based on the page_size field in the request. 1150 TestCases []*TestCase `protobuf:"bytes,1,rep,name=test_cases,json=testCases,proto3" json:"test_cases,omitempty"` 1151 // Token to retrieve the next page of results, or empty if there are no more 1152 // results in the list. 1153 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 1154} 1155 1156func (x *ListTestCasesResponse) Reset() { 1157 *x = ListTestCasesResponse{} 1158 if protoimpl.UnsafeEnabled { 1159 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[11] 1160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1161 ms.StoreMessageInfo(mi) 1162 } 1163} 1164 1165func (x *ListTestCasesResponse) String() string { 1166 return protoimpl.X.MessageStringOf(x) 1167} 1168 1169func (*ListTestCasesResponse) ProtoMessage() {} 1170 1171func (x *ListTestCasesResponse) ProtoReflect() protoreflect.Message { 1172 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[11] 1173 if protoimpl.UnsafeEnabled && x != nil { 1174 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1175 if ms.LoadMessageInfo() == nil { 1176 ms.StoreMessageInfo(mi) 1177 } 1178 return ms 1179 } 1180 return mi.MessageOf(x) 1181} 1182 1183// Deprecated: Use ListTestCasesResponse.ProtoReflect.Descriptor instead. 1184func (*ListTestCasesResponse) Descriptor() ([]byte, []int) { 1185 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{11} 1186} 1187 1188func (x *ListTestCasesResponse) GetTestCases() []*TestCase { 1189 if x != nil { 1190 return x.TestCases 1191 } 1192 return nil 1193} 1194 1195func (x *ListTestCasesResponse) GetNextPageToken() string { 1196 if x != nil { 1197 return x.NextPageToken 1198 } 1199 return "" 1200} 1201 1202// The request message for [TestCases.BatchDeleteTestCases][google.cloud.dialogflow.cx.v3.TestCases.BatchDeleteTestCases]. 1203type BatchDeleteTestCasesRequest struct { 1204 state protoimpl.MessageState 1205 sizeCache protoimpl.SizeCache 1206 unknownFields protoimpl.UnknownFields 1207 1208 // Required. The agent to delete test cases from. 1209 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`. 1210 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1211 // Required. Format of test case names: `projects/<Project ID>/locations/ 1212 // <Location ID>/agents/<AgentID>/testCases/<TestCase ID>`. 1213 Names []string `protobuf:"bytes,3,rep,name=names,proto3" json:"names,omitempty"` 1214} 1215 1216func (x *BatchDeleteTestCasesRequest) Reset() { 1217 *x = BatchDeleteTestCasesRequest{} 1218 if protoimpl.UnsafeEnabled { 1219 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[12] 1220 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1221 ms.StoreMessageInfo(mi) 1222 } 1223} 1224 1225func (x *BatchDeleteTestCasesRequest) String() string { 1226 return protoimpl.X.MessageStringOf(x) 1227} 1228 1229func (*BatchDeleteTestCasesRequest) ProtoMessage() {} 1230 1231func (x *BatchDeleteTestCasesRequest) ProtoReflect() protoreflect.Message { 1232 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[12] 1233 if protoimpl.UnsafeEnabled && x != nil { 1234 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1235 if ms.LoadMessageInfo() == nil { 1236 ms.StoreMessageInfo(mi) 1237 } 1238 return ms 1239 } 1240 return mi.MessageOf(x) 1241} 1242 1243// Deprecated: Use BatchDeleteTestCasesRequest.ProtoReflect.Descriptor instead. 1244func (*BatchDeleteTestCasesRequest) Descriptor() ([]byte, []int) { 1245 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{12} 1246} 1247 1248func (x *BatchDeleteTestCasesRequest) GetParent() string { 1249 if x != nil { 1250 return x.Parent 1251 } 1252 return "" 1253} 1254 1255func (x *BatchDeleteTestCasesRequest) GetNames() []string { 1256 if x != nil { 1257 return x.Names 1258 } 1259 return nil 1260} 1261 1262// The request message for [TestCases.CreateTestCase][google.cloud.dialogflow.cx.v3.TestCases.CreateTestCase]. 1263type CreateTestCaseRequest struct { 1264 state protoimpl.MessageState 1265 sizeCache protoimpl.SizeCache 1266 unknownFields protoimpl.UnknownFields 1267 1268 // Required. The agent to create the test case for. 1269 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`. 1270 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1271 // Required. The test case to create. 1272 TestCase *TestCase `protobuf:"bytes,2,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` 1273} 1274 1275func (x *CreateTestCaseRequest) Reset() { 1276 *x = CreateTestCaseRequest{} 1277 if protoimpl.UnsafeEnabled { 1278 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[13] 1279 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1280 ms.StoreMessageInfo(mi) 1281 } 1282} 1283 1284func (x *CreateTestCaseRequest) String() string { 1285 return protoimpl.X.MessageStringOf(x) 1286} 1287 1288func (*CreateTestCaseRequest) ProtoMessage() {} 1289 1290func (x *CreateTestCaseRequest) ProtoReflect() protoreflect.Message { 1291 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[13] 1292 if protoimpl.UnsafeEnabled && x != nil { 1293 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1294 if ms.LoadMessageInfo() == nil { 1295 ms.StoreMessageInfo(mi) 1296 } 1297 return ms 1298 } 1299 return mi.MessageOf(x) 1300} 1301 1302// Deprecated: Use CreateTestCaseRequest.ProtoReflect.Descriptor instead. 1303func (*CreateTestCaseRequest) Descriptor() ([]byte, []int) { 1304 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{13} 1305} 1306 1307func (x *CreateTestCaseRequest) GetParent() string { 1308 if x != nil { 1309 return x.Parent 1310 } 1311 return "" 1312} 1313 1314func (x *CreateTestCaseRequest) GetTestCase() *TestCase { 1315 if x != nil { 1316 return x.TestCase 1317 } 1318 return nil 1319} 1320 1321// The request message for [TestCases.UpdateTestCase][google.cloud.dialogflow.cx.v3.TestCases.UpdateTestCase]. 1322type UpdateTestCaseRequest struct { 1323 state protoimpl.MessageState 1324 sizeCache protoimpl.SizeCache 1325 unknownFields protoimpl.UnknownFields 1326 1327 // Required. The test case to update. 1328 TestCase *TestCase `protobuf:"bytes,1,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` 1329 // Required. The mask to specify which fields should be updated. The 1330 // [`creationTime`][google.cloud.dialogflow.cx.v3.TestCase.creation_time] and 1331 // [`lastTestResult`][google.cloud.dialogflow.cx.v3.TestCase.last_test_result] cannot be updated. 1332 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 1333} 1334 1335func (x *UpdateTestCaseRequest) Reset() { 1336 *x = UpdateTestCaseRequest{} 1337 if protoimpl.UnsafeEnabled { 1338 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[14] 1339 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1340 ms.StoreMessageInfo(mi) 1341 } 1342} 1343 1344func (x *UpdateTestCaseRequest) String() string { 1345 return protoimpl.X.MessageStringOf(x) 1346} 1347 1348func (*UpdateTestCaseRequest) ProtoMessage() {} 1349 1350func (x *UpdateTestCaseRequest) ProtoReflect() protoreflect.Message { 1351 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[14] 1352 if protoimpl.UnsafeEnabled && x != nil { 1353 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1354 if ms.LoadMessageInfo() == nil { 1355 ms.StoreMessageInfo(mi) 1356 } 1357 return ms 1358 } 1359 return mi.MessageOf(x) 1360} 1361 1362// Deprecated: Use UpdateTestCaseRequest.ProtoReflect.Descriptor instead. 1363func (*UpdateTestCaseRequest) Descriptor() ([]byte, []int) { 1364 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{14} 1365} 1366 1367func (x *UpdateTestCaseRequest) GetTestCase() *TestCase { 1368 if x != nil { 1369 return x.TestCase 1370 } 1371 return nil 1372} 1373 1374func (x *UpdateTestCaseRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 1375 if x != nil { 1376 return x.UpdateMask 1377 } 1378 return nil 1379} 1380 1381// The request message for [TestCases.GetTestCase][google.cloud.dialogflow.cx.v3.TestCases.GetTestCase]. 1382type GetTestCaseRequest struct { 1383 state protoimpl.MessageState 1384 sizeCache protoimpl.SizeCache 1385 unknownFields protoimpl.UnknownFields 1386 1387 // Required. The name of the testcase. 1388 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1389 // ID>/testCases/<TestCase ID>`. 1390 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1391} 1392 1393func (x *GetTestCaseRequest) Reset() { 1394 *x = GetTestCaseRequest{} 1395 if protoimpl.UnsafeEnabled { 1396 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[15] 1397 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1398 ms.StoreMessageInfo(mi) 1399 } 1400} 1401 1402func (x *GetTestCaseRequest) String() string { 1403 return protoimpl.X.MessageStringOf(x) 1404} 1405 1406func (*GetTestCaseRequest) ProtoMessage() {} 1407 1408func (x *GetTestCaseRequest) ProtoReflect() protoreflect.Message { 1409 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[15] 1410 if protoimpl.UnsafeEnabled && x != nil { 1411 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1412 if ms.LoadMessageInfo() == nil { 1413 ms.StoreMessageInfo(mi) 1414 } 1415 return ms 1416 } 1417 return mi.MessageOf(x) 1418} 1419 1420// Deprecated: Use GetTestCaseRequest.ProtoReflect.Descriptor instead. 1421func (*GetTestCaseRequest) Descriptor() ([]byte, []int) { 1422 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{15} 1423} 1424 1425func (x *GetTestCaseRequest) GetName() string { 1426 if x != nil { 1427 return x.Name 1428 } 1429 return "" 1430} 1431 1432// The request message for [TestCases.RunTestCase][google.cloud.dialogflow.cx.v3.TestCases.RunTestCase]. 1433type RunTestCaseRequest struct { 1434 state protoimpl.MessageState 1435 sizeCache protoimpl.SizeCache 1436 unknownFields protoimpl.UnknownFields 1437 1438 // Required. Format of test case name to run: `projects/<Project ID>/locations/ 1439 // <Location ID>/agents/<AgentID>/testCases/<TestCase ID>`. 1440 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1441 // Optional. Environment name. If not set, draft environment is assumed. 1442 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1443 // ID>/environments/<Environment ID>`. 1444 Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` 1445} 1446 1447func (x *RunTestCaseRequest) Reset() { 1448 *x = RunTestCaseRequest{} 1449 if protoimpl.UnsafeEnabled { 1450 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[16] 1451 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1452 ms.StoreMessageInfo(mi) 1453 } 1454} 1455 1456func (x *RunTestCaseRequest) String() string { 1457 return protoimpl.X.MessageStringOf(x) 1458} 1459 1460func (*RunTestCaseRequest) ProtoMessage() {} 1461 1462func (x *RunTestCaseRequest) ProtoReflect() protoreflect.Message { 1463 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[16] 1464 if protoimpl.UnsafeEnabled && x != nil { 1465 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1466 if ms.LoadMessageInfo() == nil { 1467 ms.StoreMessageInfo(mi) 1468 } 1469 return ms 1470 } 1471 return mi.MessageOf(x) 1472} 1473 1474// Deprecated: Use RunTestCaseRequest.ProtoReflect.Descriptor instead. 1475func (*RunTestCaseRequest) Descriptor() ([]byte, []int) { 1476 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{16} 1477} 1478 1479func (x *RunTestCaseRequest) GetName() string { 1480 if x != nil { 1481 return x.Name 1482 } 1483 return "" 1484} 1485 1486func (x *RunTestCaseRequest) GetEnvironment() string { 1487 if x != nil { 1488 return x.Environment 1489 } 1490 return "" 1491} 1492 1493// The response message for [TestCases.RunTestCase][google.cloud.dialogflow.cx.v3.TestCases.RunTestCase]. 1494type RunTestCaseResponse struct { 1495 state protoimpl.MessageState 1496 sizeCache protoimpl.SizeCache 1497 unknownFields protoimpl.UnknownFields 1498 1499 // The result. 1500 Result *TestCaseResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` 1501} 1502 1503func (x *RunTestCaseResponse) Reset() { 1504 *x = RunTestCaseResponse{} 1505 if protoimpl.UnsafeEnabled { 1506 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[17] 1507 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1508 ms.StoreMessageInfo(mi) 1509 } 1510} 1511 1512func (x *RunTestCaseResponse) String() string { 1513 return protoimpl.X.MessageStringOf(x) 1514} 1515 1516func (*RunTestCaseResponse) ProtoMessage() {} 1517 1518func (x *RunTestCaseResponse) ProtoReflect() protoreflect.Message { 1519 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[17] 1520 if protoimpl.UnsafeEnabled && x != nil { 1521 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1522 if ms.LoadMessageInfo() == nil { 1523 ms.StoreMessageInfo(mi) 1524 } 1525 return ms 1526 } 1527 return mi.MessageOf(x) 1528} 1529 1530// Deprecated: Use RunTestCaseResponse.ProtoReflect.Descriptor instead. 1531func (*RunTestCaseResponse) Descriptor() ([]byte, []int) { 1532 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{17} 1533} 1534 1535func (x *RunTestCaseResponse) GetResult() *TestCaseResult { 1536 if x != nil { 1537 return x.Result 1538 } 1539 return nil 1540} 1541 1542// Metadata returned for the [TestCases.RunTestCase][google.cloud.dialogflow.cx.v3.TestCases.RunTestCase] long running operation. 1543// This message currently has no fields. 1544type RunTestCaseMetadata struct { 1545 state protoimpl.MessageState 1546 sizeCache protoimpl.SizeCache 1547 unknownFields protoimpl.UnknownFields 1548} 1549 1550func (x *RunTestCaseMetadata) Reset() { 1551 *x = RunTestCaseMetadata{} 1552 if protoimpl.UnsafeEnabled { 1553 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[18] 1554 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1555 ms.StoreMessageInfo(mi) 1556 } 1557} 1558 1559func (x *RunTestCaseMetadata) String() string { 1560 return protoimpl.X.MessageStringOf(x) 1561} 1562 1563func (*RunTestCaseMetadata) ProtoMessage() {} 1564 1565func (x *RunTestCaseMetadata) ProtoReflect() protoreflect.Message { 1566 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[18] 1567 if protoimpl.UnsafeEnabled && x != nil { 1568 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1569 if ms.LoadMessageInfo() == nil { 1570 ms.StoreMessageInfo(mi) 1571 } 1572 return ms 1573 } 1574 return mi.MessageOf(x) 1575} 1576 1577// Deprecated: Use RunTestCaseMetadata.ProtoReflect.Descriptor instead. 1578func (*RunTestCaseMetadata) Descriptor() ([]byte, []int) { 1579 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{18} 1580} 1581 1582// The request message for [TestCases.BatchRunTestCases][google.cloud.dialogflow.cx.v3.TestCases.BatchRunTestCases]. 1583type BatchRunTestCasesRequest struct { 1584 state protoimpl.MessageState 1585 sizeCache protoimpl.SizeCache 1586 unknownFields protoimpl.UnknownFields 1587 1588 // Required. Agent name. Format: `projects/<Project ID>/locations/<Location ID>/agents/ 1589 // <AgentID>`. 1590 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1591 // Optional. If not set, draft environment is assumed. Format: `projects/<Project 1592 // ID>/locations/<Location ID>/agents/<Agent ID>/environments/<Environment 1593 // ID>`. 1594 Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` 1595 // Required. Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1596 // ID>/testCases/<TestCase ID>`. 1597 TestCases []string `protobuf:"bytes,3,rep,name=test_cases,json=testCases,proto3" json:"test_cases,omitempty"` 1598} 1599 1600func (x *BatchRunTestCasesRequest) Reset() { 1601 *x = BatchRunTestCasesRequest{} 1602 if protoimpl.UnsafeEnabled { 1603 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[19] 1604 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1605 ms.StoreMessageInfo(mi) 1606 } 1607} 1608 1609func (x *BatchRunTestCasesRequest) String() string { 1610 return protoimpl.X.MessageStringOf(x) 1611} 1612 1613func (*BatchRunTestCasesRequest) ProtoMessage() {} 1614 1615func (x *BatchRunTestCasesRequest) ProtoReflect() protoreflect.Message { 1616 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[19] 1617 if protoimpl.UnsafeEnabled && x != nil { 1618 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1619 if ms.LoadMessageInfo() == nil { 1620 ms.StoreMessageInfo(mi) 1621 } 1622 return ms 1623 } 1624 return mi.MessageOf(x) 1625} 1626 1627// Deprecated: Use BatchRunTestCasesRequest.ProtoReflect.Descriptor instead. 1628func (*BatchRunTestCasesRequest) Descriptor() ([]byte, []int) { 1629 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{19} 1630} 1631 1632func (x *BatchRunTestCasesRequest) GetParent() string { 1633 if x != nil { 1634 return x.Parent 1635 } 1636 return "" 1637} 1638 1639func (x *BatchRunTestCasesRequest) GetEnvironment() string { 1640 if x != nil { 1641 return x.Environment 1642 } 1643 return "" 1644} 1645 1646func (x *BatchRunTestCasesRequest) GetTestCases() []string { 1647 if x != nil { 1648 return x.TestCases 1649 } 1650 return nil 1651} 1652 1653// The response message for [TestCases.BatchRunTestCases][google.cloud.dialogflow.cx.v3.TestCases.BatchRunTestCases]. 1654type BatchRunTestCasesResponse struct { 1655 state protoimpl.MessageState 1656 sizeCache protoimpl.SizeCache 1657 unknownFields protoimpl.UnknownFields 1658 1659 // The test case results. The detailed 1660 // [conversation turns][google.cloud.dialogflow.cx.v3.TestCaseResult.conversation_turns] are empty in this 1661 // response. 1662 Results []*TestCaseResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` 1663} 1664 1665func (x *BatchRunTestCasesResponse) Reset() { 1666 *x = BatchRunTestCasesResponse{} 1667 if protoimpl.UnsafeEnabled { 1668 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[20] 1669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1670 ms.StoreMessageInfo(mi) 1671 } 1672} 1673 1674func (x *BatchRunTestCasesResponse) String() string { 1675 return protoimpl.X.MessageStringOf(x) 1676} 1677 1678func (*BatchRunTestCasesResponse) ProtoMessage() {} 1679 1680func (x *BatchRunTestCasesResponse) ProtoReflect() protoreflect.Message { 1681 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[20] 1682 if protoimpl.UnsafeEnabled && x != nil { 1683 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1684 if ms.LoadMessageInfo() == nil { 1685 ms.StoreMessageInfo(mi) 1686 } 1687 return ms 1688 } 1689 return mi.MessageOf(x) 1690} 1691 1692// Deprecated: Use BatchRunTestCasesResponse.ProtoReflect.Descriptor instead. 1693func (*BatchRunTestCasesResponse) Descriptor() ([]byte, []int) { 1694 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{20} 1695} 1696 1697func (x *BatchRunTestCasesResponse) GetResults() []*TestCaseResult { 1698 if x != nil { 1699 return x.Results 1700 } 1701 return nil 1702} 1703 1704// Metadata returned for the [TestCases.BatchRunTestCases][google.cloud.dialogflow.cx.v3.TestCases.BatchRunTestCases] long running 1705// operation. 1706type BatchRunTestCasesMetadata struct { 1707 state protoimpl.MessageState 1708 sizeCache protoimpl.SizeCache 1709 unknownFields protoimpl.UnknownFields 1710 1711 // The test errors. 1712 Errors []*TestError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` 1713} 1714 1715func (x *BatchRunTestCasesMetadata) Reset() { 1716 *x = BatchRunTestCasesMetadata{} 1717 if protoimpl.UnsafeEnabled { 1718 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[21] 1719 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1720 ms.StoreMessageInfo(mi) 1721 } 1722} 1723 1724func (x *BatchRunTestCasesMetadata) String() string { 1725 return protoimpl.X.MessageStringOf(x) 1726} 1727 1728func (*BatchRunTestCasesMetadata) ProtoMessage() {} 1729 1730func (x *BatchRunTestCasesMetadata) ProtoReflect() protoreflect.Message { 1731 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[21] 1732 if protoimpl.UnsafeEnabled && x != nil { 1733 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1734 if ms.LoadMessageInfo() == nil { 1735 ms.StoreMessageInfo(mi) 1736 } 1737 return ms 1738 } 1739 return mi.MessageOf(x) 1740} 1741 1742// Deprecated: Use BatchRunTestCasesMetadata.ProtoReflect.Descriptor instead. 1743func (*BatchRunTestCasesMetadata) Descriptor() ([]byte, []int) { 1744 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{21} 1745} 1746 1747func (x *BatchRunTestCasesMetadata) GetErrors() []*TestError { 1748 if x != nil { 1749 return x.Errors 1750 } 1751 return nil 1752} 1753 1754// Error info for running a test. 1755type TestError struct { 1756 state protoimpl.MessageState 1757 sizeCache protoimpl.SizeCache 1758 unknownFields protoimpl.UnknownFields 1759 1760 // The test case resource name. 1761 TestCase string `protobuf:"bytes,1,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` 1762 // The status associated with the test. 1763 Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` 1764 // The timestamp when the test was completed. 1765 TestTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=test_time,json=testTime,proto3" json:"test_time,omitempty"` 1766} 1767 1768func (x *TestError) Reset() { 1769 *x = TestError{} 1770 if protoimpl.UnsafeEnabled { 1771 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[22] 1772 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1773 ms.StoreMessageInfo(mi) 1774 } 1775} 1776 1777func (x *TestError) String() string { 1778 return protoimpl.X.MessageStringOf(x) 1779} 1780 1781func (*TestError) ProtoMessage() {} 1782 1783func (x *TestError) ProtoReflect() protoreflect.Message { 1784 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[22] 1785 if protoimpl.UnsafeEnabled && x != nil { 1786 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1787 if ms.LoadMessageInfo() == nil { 1788 ms.StoreMessageInfo(mi) 1789 } 1790 return ms 1791 } 1792 return mi.MessageOf(x) 1793} 1794 1795// Deprecated: Use TestError.ProtoReflect.Descriptor instead. 1796func (*TestError) Descriptor() ([]byte, []int) { 1797 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{22} 1798} 1799 1800func (x *TestError) GetTestCase() string { 1801 if x != nil { 1802 return x.TestCase 1803 } 1804 return "" 1805} 1806 1807func (x *TestError) GetStatus() *status.Status { 1808 if x != nil { 1809 return x.Status 1810 } 1811 return nil 1812} 1813 1814func (x *TestError) GetTestTime() *timestamppb.Timestamp { 1815 if x != nil { 1816 return x.TestTime 1817 } 1818 return nil 1819} 1820 1821// The request message for [TestCases.ImportTestCases][google.cloud.dialogflow.cx.v3.TestCases.ImportTestCases]. 1822type ImportTestCasesRequest struct { 1823 state protoimpl.MessageState 1824 sizeCache protoimpl.SizeCache 1825 unknownFields protoimpl.UnknownFields 1826 1827 // Required. The agent to import test cases to. 1828 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`. 1829 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1830 // Required. The source to import. 1831 // 1832 // Types that are assignable to Source: 1833 // *ImportTestCasesRequest_GcsUri 1834 // *ImportTestCasesRequest_Content 1835 Source isImportTestCasesRequest_Source `protobuf_oneof:"source"` 1836} 1837 1838func (x *ImportTestCasesRequest) Reset() { 1839 *x = ImportTestCasesRequest{} 1840 if protoimpl.UnsafeEnabled { 1841 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[23] 1842 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1843 ms.StoreMessageInfo(mi) 1844 } 1845} 1846 1847func (x *ImportTestCasesRequest) String() string { 1848 return protoimpl.X.MessageStringOf(x) 1849} 1850 1851func (*ImportTestCasesRequest) ProtoMessage() {} 1852 1853func (x *ImportTestCasesRequest) ProtoReflect() protoreflect.Message { 1854 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[23] 1855 if protoimpl.UnsafeEnabled && x != nil { 1856 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1857 if ms.LoadMessageInfo() == nil { 1858 ms.StoreMessageInfo(mi) 1859 } 1860 return ms 1861 } 1862 return mi.MessageOf(x) 1863} 1864 1865// Deprecated: Use ImportTestCasesRequest.ProtoReflect.Descriptor instead. 1866func (*ImportTestCasesRequest) Descriptor() ([]byte, []int) { 1867 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{23} 1868} 1869 1870func (x *ImportTestCasesRequest) GetParent() string { 1871 if x != nil { 1872 return x.Parent 1873 } 1874 return "" 1875} 1876 1877func (m *ImportTestCasesRequest) GetSource() isImportTestCasesRequest_Source { 1878 if m != nil { 1879 return m.Source 1880 } 1881 return nil 1882} 1883 1884func (x *ImportTestCasesRequest) GetGcsUri() string { 1885 if x, ok := x.GetSource().(*ImportTestCasesRequest_GcsUri); ok { 1886 return x.GcsUri 1887 } 1888 return "" 1889} 1890 1891func (x *ImportTestCasesRequest) GetContent() []byte { 1892 if x, ok := x.GetSource().(*ImportTestCasesRequest_Content); ok { 1893 return x.Content 1894 } 1895 return nil 1896} 1897 1898type isImportTestCasesRequest_Source interface { 1899 isImportTestCasesRequest_Source() 1900} 1901 1902type ImportTestCasesRequest_GcsUri struct { 1903 // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI 1904 // to import test cases from. The format of this URI must be 1905 // `gs://<bucket-name>/<object-name>`. 1906 GcsUri string `protobuf:"bytes,2,opt,name=gcs_uri,json=gcsUri,proto3,oneof"` 1907} 1908 1909type ImportTestCasesRequest_Content struct { 1910 // Uncompressed raw byte content for test cases. 1911 Content []byte `protobuf:"bytes,3,opt,name=content,proto3,oneof"` 1912} 1913 1914func (*ImportTestCasesRequest_GcsUri) isImportTestCasesRequest_Source() {} 1915 1916func (*ImportTestCasesRequest_Content) isImportTestCasesRequest_Source() {} 1917 1918// The response message for [TestCases.ImportTestCases][google.cloud.dialogflow.cx.v3.TestCases.ImportTestCases]. 1919type ImportTestCasesResponse struct { 1920 state protoimpl.MessageState 1921 sizeCache protoimpl.SizeCache 1922 unknownFields protoimpl.UnknownFields 1923 1924 // The unique identifiers of the new test cases. 1925 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1926 // ID>/testCases/<TestCase ID>`. 1927 Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` 1928} 1929 1930func (x *ImportTestCasesResponse) Reset() { 1931 *x = ImportTestCasesResponse{} 1932 if protoimpl.UnsafeEnabled { 1933 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[24] 1934 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1935 ms.StoreMessageInfo(mi) 1936 } 1937} 1938 1939func (x *ImportTestCasesResponse) String() string { 1940 return protoimpl.X.MessageStringOf(x) 1941} 1942 1943func (*ImportTestCasesResponse) ProtoMessage() {} 1944 1945func (x *ImportTestCasesResponse) ProtoReflect() protoreflect.Message { 1946 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[24] 1947 if protoimpl.UnsafeEnabled && x != nil { 1948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1949 if ms.LoadMessageInfo() == nil { 1950 ms.StoreMessageInfo(mi) 1951 } 1952 return ms 1953 } 1954 return mi.MessageOf(x) 1955} 1956 1957// Deprecated: Use ImportTestCasesResponse.ProtoReflect.Descriptor instead. 1958func (*ImportTestCasesResponse) Descriptor() ([]byte, []int) { 1959 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{24} 1960} 1961 1962func (x *ImportTestCasesResponse) GetNames() []string { 1963 if x != nil { 1964 return x.Names 1965 } 1966 return nil 1967} 1968 1969// Metadata returned for the [TestCases.ImportTestCases][google.cloud.dialogflow.cx.v3.TestCases.ImportTestCases] long running 1970// operation. 1971type ImportTestCasesMetadata struct { 1972 state protoimpl.MessageState 1973 sizeCache protoimpl.SizeCache 1974 unknownFields protoimpl.UnknownFields 1975 1976 // Errors for failed test cases. 1977 Errors []*TestCaseError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` 1978} 1979 1980func (x *ImportTestCasesMetadata) Reset() { 1981 *x = ImportTestCasesMetadata{} 1982 if protoimpl.UnsafeEnabled { 1983 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[25] 1984 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1985 ms.StoreMessageInfo(mi) 1986 } 1987} 1988 1989func (x *ImportTestCasesMetadata) String() string { 1990 return protoimpl.X.MessageStringOf(x) 1991} 1992 1993func (*ImportTestCasesMetadata) ProtoMessage() {} 1994 1995func (x *ImportTestCasesMetadata) ProtoReflect() protoreflect.Message { 1996 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[25] 1997 if protoimpl.UnsafeEnabled && x != nil { 1998 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1999 if ms.LoadMessageInfo() == nil { 2000 ms.StoreMessageInfo(mi) 2001 } 2002 return ms 2003 } 2004 return mi.MessageOf(x) 2005} 2006 2007// Deprecated: Use ImportTestCasesMetadata.ProtoReflect.Descriptor instead. 2008func (*ImportTestCasesMetadata) Descriptor() ([]byte, []int) { 2009 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{25} 2010} 2011 2012func (x *ImportTestCasesMetadata) GetErrors() []*TestCaseError { 2013 if x != nil { 2014 return x.Errors 2015 } 2016 return nil 2017} 2018 2019// Error info for importing a test. 2020type TestCaseError struct { 2021 state protoimpl.MessageState 2022 sizeCache protoimpl.SizeCache 2023 unknownFields protoimpl.UnknownFields 2024 2025 // The test case. 2026 TestCase *TestCase `protobuf:"bytes,1,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` 2027 // The status associated with the test case. 2028 Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` 2029} 2030 2031func (x *TestCaseError) Reset() { 2032 *x = TestCaseError{} 2033 if protoimpl.UnsafeEnabled { 2034 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[26] 2035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2036 ms.StoreMessageInfo(mi) 2037 } 2038} 2039 2040func (x *TestCaseError) String() string { 2041 return protoimpl.X.MessageStringOf(x) 2042} 2043 2044func (*TestCaseError) ProtoMessage() {} 2045 2046func (x *TestCaseError) ProtoReflect() protoreflect.Message { 2047 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[26] 2048 if protoimpl.UnsafeEnabled && x != nil { 2049 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2050 if ms.LoadMessageInfo() == nil { 2051 ms.StoreMessageInfo(mi) 2052 } 2053 return ms 2054 } 2055 return mi.MessageOf(x) 2056} 2057 2058// Deprecated: Use TestCaseError.ProtoReflect.Descriptor instead. 2059func (*TestCaseError) Descriptor() ([]byte, []int) { 2060 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{26} 2061} 2062 2063func (x *TestCaseError) GetTestCase() *TestCase { 2064 if x != nil { 2065 return x.TestCase 2066 } 2067 return nil 2068} 2069 2070func (x *TestCaseError) GetStatus() *status.Status { 2071 if x != nil { 2072 return x.Status 2073 } 2074 return nil 2075} 2076 2077// The request message for [TestCases.ExportTestCases][google.cloud.dialogflow.cx.v3.TestCases.ExportTestCases]. 2078type ExportTestCasesRequest struct { 2079 state protoimpl.MessageState 2080 sizeCache protoimpl.SizeCache 2081 unknownFields protoimpl.UnknownFields 2082 2083 // Required. The agent where to export test cases from. 2084 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`. 2085 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2086 // The destination to export. 2087 // 2088 // Types that are assignable to Destination: 2089 // *ExportTestCasesRequest_GcsUri 2090 Destination isExportTestCasesRequest_Destination `protobuf_oneof:"destination"` 2091 // The data format of the exported test cases. If not specified, `BLOB` is 2092 // assumed. 2093 DataFormat ExportTestCasesRequest_DataFormat `protobuf:"varint,3,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.dialogflow.cx.v3.ExportTestCasesRequest_DataFormat" json:"data_format,omitempty"` 2094 // The filter expression used to filter exported test cases, see 2095 // [API Filtering](https://aip.dev/160). The expression is case insensitive 2096 // and supports the following syntax: 2097 // 2098 // name = <value> [OR name = <value>] ... 2099 // 2100 // For example: 2101 // 2102 // * "name = t1 OR name = t2" matches the test case with the exact resource 2103 // name "t1" or "t2". 2104 Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` 2105} 2106 2107func (x *ExportTestCasesRequest) Reset() { 2108 *x = ExportTestCasesRequest{} 2109 if protoimpl.UnsafeEnabled { 2110 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[27] 2111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2112 ms.StoreMessageInfo(mi) 2113 } 2114} 2115 2116func (x *ExportTestCasesRequest) String() string { 2117 return protoimpl.X.MessageStringOf(x) 2118} 2119 2120func (*ExportTestCasesRequest) ProtoMessage() {} 2121 2122func (x *ExportTestCasesRequest) ProtoReflect() protoreflect.Message { 2123 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[27] 2124 if protoimpl.UnsafeEnabled && x != nil { 2125 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2126 if ms.LoadMessageInfo() == nil { 2127 ms.StoreMessageInfo(mi) 2128 } 2129 return ms 2130 } 2131 return mi.MessageOf(x) 2132} 2133 2134// Deprecated: Use ExportTestCasesRequest.ProtoReflect.Descriptor instead. 2135func (*ExportTestCasesRequest) Descriptor() ([]byte, []int) { 2136 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{27} 2137} 2138 2139func (x *ExportTestCasesRequest) GetParent() string { 2140 if x != nil { 2141 return x.Parent 2142 } 2143 return "" 2144} 2145 2146func (m *ExportTestCasesRequest) GetDestination() isExportTestCasesRequest_Destination { 2147 if m != nil { 2148 return m.Destination 2149 } 2150 return nil 2151} 2152 2153func (x *ExportTestCasesRequest) GetGcsUri() string { 2154 if x, ok := x.GetDestination().(*ExportTestCasesRequest_GcsUri); ok { 2155 return x.GcsUri 2156 } 2157 return "" 2158} 2159 2160func (x *ExportTestCasesRequest) GetDataFormat() ExportTestCasesRequest_DataFormat { 2161 if x != nil { 2162 return x.DataFormat 2163 } 2164 return ExportTestCasesRequest_DATA_FORMAT_UNSPECIFIED 2165} 2166 2167func (x *ExportTestCasesRequest) GetFilter() string { 2168 if x != nil { 2169 return x.Filter 2170 } 2171 return "" 2172} 2173 2174type isExportTestCasesRequest_Destination interface { 2175 isExportTestCasesRequest_Destination() 2176} 2177 2178type ExportTestCasesRequest_GcsUri struct { 2179 // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to 2180 // export the test cases to. The format of this URI must be 2181 // `gs://<bucket-name>/<object-name>`. If unspecified, the serialized test 2182 // cases is returned inline. 2183 GcsUri string `protobuf:"bytes,2,opt,name=gcs_uri,json=gcsUri,proto3,oneof"` 2184} 2185 2186func (*ExportTestCasesRequest_GcsUri) isExportTestCasesRequest_Destination() {} 2187 2188// The response message for [TestCases.ExportTestCases][google.cloud.dialogflow.cx.v3.TestCases.ExportTestCases]. 2189type ExportTestCasesResponse struct { 2190 state protoimpl.MessageState 2191 sizeCache protoimpl.SizeCache 2192 unknownFields protoimpl.UnknownFields 2193 2194 // The exported test cases. 2195 // 2196 // Types that are assignable to Destination: 2197 // *ExportTestCasesResponse_GcsUri 2198 // *ExportTestCasesResponse_Content 2199 Destination isExportTestCasesResponse_Destination `protobuf_oneof:"destination"` 2200} 2201 2202func (x *ExportTestCasesResponse) Reset() { 2203 *x = ExportTestCasesResponse{} 2204 if protoimpl.UnsafeEnabled { 2205 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[28] 2206 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2207 ms.StoreMessageInfo(mi) 2208 } 2209} 2210 2211func (x *ExportTestCasesResponse) String() string { 2212 return protoimpl.X.MessageStringOf(x) 2213} 2214 2215func (*ExportTestCasesResponse) ProtoMessage() {} 2216 2217func (x *ExportTestCasesResponse) ProtoReflect() protoreflect.Message { 2218 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[28] 2219 if protoimpl.UnsafeEnabled && x != nil { 2220 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2221 if ms.LoadMessageInfo() == nil { 2222 ms.StoreMessageInfo(mi) 2223 } 2224 return ms 2225 } 2226 return mi.MessageOf(x) 2227} 2228 2229// Deprecated: Use ExportTestCasesResponse.ProtoReflect.Descriptor instead. 2230func (*ExportTestCasesResponse) Descriptor() ([]byte, []int) { 2231 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{28} 2232} 2233 2234func (m *ExportTestCasesResponse) GetDestination() isExportTestCasesResponse_Destination { 2235 if m != nil { 2236 return m.Destination 2237 } 2238 return nil 2239} 2240 2241func (x *ExportTestCasesResponse) GetGcsUri() string { 2242 if x, ok := x.GetDestination().(*ExportTestCasesResponse_GcsUri); ok { 2243 return x.GcsUri 2244 } 2245 return "" 2246} 2247 2248func (x *ExportTestCasesResponse) GetContent() []byte { 2249 if x, ok := x.GetDestination().(*ExportTestCasesResponse_Content); ok { 2250 return x.Content 2251 } 2252 return nil 2253} 2254 2255type isExportTestCasesResponse_Destination interface { 2256 isExportTestCasesResponse_Destination() 2257} 2258 2259type ExportTestCasesResponse_GcsUri struct { 2260 // The URI to a file containing the exported test cases. This field is 2261 // populated only if `gcs_uri` is specified in 2262 // [ExportTestCasesRequest][google.cloud.dialogflow.cx.v3.ExportTestCasesRequest]. 2263 GcsUri string `protobuf:"bytes,1,opt,name=gcs_uri,json=gcsUri,proto3,oneof"` 2264} 2265 2266type ExportTestCasesResponse_Content struct { 2267 // Uncompressed raw byte content for test cases. 2268 Content []byte `protobuf:"bytes,2,opt,name=content,proto3,oneof"` 2269} 2270 2271func (*ExportTestCasesResponse_GcsUri) isExportTestCasesResponse_Destination() {} 2272 2273func (*ExportTestCasesResponse_Content) isExportTestCasesResponse_Destination() {} 2274 2275// Metadata returned for the [TestCases.ExportTestCases][google.cloud.dialogflow.cx.v3.TestCases.ExportTestCases] long running 2276// operation. 2277type ExportTestCasesMetadata struct { 2278 state protoimpl.MessageState 2279 sizeCache protoimpl.SizeCache 2280 unknownFields protoimpl.UnknownFields 2281} 2282 2283func (x *ExportTestCasesMetadata) Reset() { 2284 *x = ExportTestCasesMetadata{} 2285 if protoimpl.UnsafeEnabled { 2286 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[29] 2287 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2288 ms.StoreMessageInfo(mi) 2289 } 2290} 2291 2292func (x *ExportTestCasesMetadata) String() string { 2293 return protoimpl.X.MessageStringOf(x) 2294} 2295 2296func (*ExportTestCasesMetadata) ProtoMessage() {} 2297 2298func (x *ExportTestCasesMetadata) ProtoReflect() protoreflect.Message { 2299 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[29] 2300 if protoimpl.UnsafeEnabled && x != nil { 2301 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2302 if ms.LoadMessageInfo() == nil { 2303 ms.StoreMessageInfo(mi) 2304 } 2305 return ms 2306 } 2307 return mi.MessageOf(x) 2308} 2309 2310// Deprecated: Use ExportTestCasesMetadata.ProtoReflect.Descriptor instead. 2311func (*ExportTestCasesMetadata) Descriptor() ([]byte, []int) { 2312 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{29} 2313} 2314 2315// The request message for [TestCases.ListTestCaseResults][google.cloud.dialogflow.cx.v3.TestCases.ListTestCaseResults]. 2316type ListTestCaseResultsRequest struct { 2317 state protoimpl.MessageState 2318 sizeCache protoimpl.SizeCache 2319 unknownFields protoimpl.UnknownFields 2320 2321 // Required. The test case to list results for. 2322 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/ 2323 // testCases/<TestCase ID>`. Specify a `-` as a wildcard for TestCase ID to 2324 // list results across multiple test cases. 2325 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2326 // The maximum number of items to return in a single page. By default 100 and 2327 // at most 1000. 2328 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2329 // The next_page_token value returned from a previous list request. 2330 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2331 // The filter expression used to filter test case results. See 2332 // [API Filtering](https://aip.dev/160). 2333 // 2334 // The expression is case insensitive. Only 'AND' is supported for logical 2335 // operators. The supported syntax is listed below in detail: 2336 // 2337 // <field> <operator> <value> [AND <field> <operator> <value>] ... 2338 // [AND latest] 2339 // 2340 // The supported fields and operators are: 2341 // field operator 2342 // `environment` `=`, `IN` (Use value `draft` for draft environment) 2343 // `test_time` `>`, `<` 2344 // 2345 // `latest` only returns the latest test result in all results for each test 2346 // case. 2347 // 2348 // Examples: 2349 // * "environment=draft AND latest" matches the latest test result for each 2350 // test case in the draft environment. 2351 // * "environment IN (e1,e2)" matches any test case results with an 2352 // environment resource name of either "e1" or "e2". 2353 // * "test_time > 1602540713" matches any test case results with test time 2354 // later than a unix timestamp in seconds 1602540713. 2355 Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` 2356} 2357 2358func (x *ListTestCaseResultsRequest) Reset() { 2359 *x = ListTestCaseResultsRequest{} 2360 if protoimpl.UnsafeEnabled { 2361 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[30] 2362 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2363 ms.StoreMessageInfo(mi) 2364 } 2365} 2366 2367func (x *ListTestCaseResultsRequest) String() string { 2368 return protoimpl.X.MessageStringOf(x) 2369} 2370 2371func (*ListTestCaseResultsRequest) ProtoMessage() {} 2372 2373func (x *ListTestCaseResultsRequest) ProtoReflect() protoreflect.Message { 2374 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[30] 2375 if protoimpl.UnsafeEnabled && x != nil { 2376 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2377 if ms.LoadMessageInfo() == nil { 2378 ms.StoreMessageInfo(mi) 2379 } 2380 return ms 2381 } 2382 return mi.MessageOf(x) 2383} 2384 2385// Deprecated: Use ListTestCaseResultsRequest.ProtoReflect.Descriptor instead. 2386func (*ListTestCaseResultsRequest) Descriptor() ([]byte, []int) { 2387 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{30} 2388} 2389 2390func (x *ListTestCaseResultsRequest) GetParent() string { 2391 if x != nil { 2392 return x.Parent 2393 } 2394 return "" 2395} 2396 2397func (x *ListTestCaseResultsRequest) GetPageSize() int32 { 2398 if x != nil { 2399 return x.PageSize 2400 } 2401 return 0 2402} 2403 2404func (x *ListTestCaseResultsRequest) GetPageToken() string { 2405 if x != nil { 2406 return x.PageToken 2407 } 2408 return "" 2409} 2410 2411func (x *ListTestCaseResultsRequest) GetFilter() string { 2412 if x != nil { 2413 return x.Filter 2414 } 2415 return "" 2416} 2417 2418// The response message for [TestCases.ListTestCaseResults][google.cloud.dialogflow.cx.v3.TestCases.ListTestCaseResults]. 2419type ListTestCaseResultsResponse struct { 2420 state protoimpl.MessageState 2421 sizeCache protoimpl.SizeCache 2422 unknownFields protoimpl.UnknownFields 2423 2424 // The list of test case results. 2425 TestCaseResults []*TestCaseResult `protobuf:"bytes,1,rep,name=test_case_results,json=testCaseResults,proto3" json:"test_case_results,omitempty"` 2426 // Token to retrieve the next page of results, or empty if there are no more 2427 // results in the list. 2428 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2429} 2430 2431func (x *ListTestCaseResultsResponse) Reset() { 2432 *x = ListTestCaseResultsResponse{} 2433 if protoimpl.UnsafeEnabled { 2434 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[31] 2435 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2436 ms.StoreMessageInfo(mi) 2437 } 2438} 2439 2440func (x *ListTestCaseResultsResponse) String() string { 2441 return protoimpl.X.MessageStringOf(x) 2442} 2443 2444func (*ListTestCaseResultsResponse) ProtoMessage() {} 2445 2446func (x *ListTestCaseResultsResponse) ProtoReflect() protoreflect.Message { 2447 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[31] 2448 if protoimpl.UnsafeEnabled && x != nil { 2449 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2450 if ms.LoadMessageInfo() == nil { 2451 ms.StoreMessageInfo(mi) 2452 } 2453 return ms 2454 } 2455 return mi.MessageOf(x) 2456} 2457 2458// Deprecated: Use ListTestCaseResultsResponse.ProtoReflect.Descriptor instead. 2459func (*ListTestCaseResultsResponse) Descriptor() ([]byte, []int) { 2460 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{31} 2461} 2462 2463func (x *ListTestCaseResultsResponse) GetTestCaseResults() []*TestCaseResult { 2464 if x != nil { 2465 return x.TestCaseResults 2466 } 2467 return nil 2468} 2469 2470func (x *ListTestCaseResultsResponse) GetNextPageToken() string { 2471 if x != nil { 2472 return x.NextPageToken 2473 } 2474 return "" 2475} 2476 2477// The request message for [TestCases.GetTestCaseResult][google.cloud.dialogflow.cx.v3.TestCases.GetTestCaseResult]. 2478type GetTestCaseResultRequest struct { 2479 state protoimpl.MessageState 2480 sizeCache protoimpl.SizeCache 2481 unknownFields protoimpl.UnknownFields 2482 2483 // Required. The name of the testcase. 2484 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 2485 // ID>/testCases/<TestCase ID>/results/<TestCaseResult ID>`. 2486 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2487} 2488 2489func (x *GetTestCaseResultRequest) Reset() { 2490 *x = GetTestCaseResultRequest{} 2491 if protoimpl.UnsafeEnabled { 2492 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[32] 2493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2494 ms.StoreMessageInfo(mi) 2495 } 2496} 2497 2498func (x *GetTestCaseResultRequest) String() string { 2499 return protoimpl.X.MessageStringOf(x) 2500} 2501 2502func (*GetTestCaseResultRequest) ProtoMessage() {} 2503 2504func (x *GetTestCaseResultRequest) ProtoReflect() protoreflect.Message { 2505 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[32] 2506 if protoimpl.UnsafeEnabled && x != nil { 2507 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2508 if ms.LoadMessageInfo() == nil { 2509 ms.StoreMessageInfo(mi) 2510 } 2511 return ms 2512 } 2513 return mi.MessageOf(x) 2514} 2515 2516// Deprecated: Use GetTestCaseResultRequest.ProtoReflect.Descriptor instead. 2517func (*GetTestCaseResultRequest) Descriptor() ([]byte, []int) { 2518 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{32} 2519} 2520 2521func (x *GetTestCaseResultRequest) GetName() string { 2522 if x != nil { 2523 return x.Name 2524 } 2525 return "" 2526} 2527 2528// The input from the human user. 2529type ConversationTurn_UserInput struct { 2530 state protoimpl.MessageState 2531 sizeCache protoimpl.SizeCache 2532 unknownFields protoimpl.UnknownFields 2533 2534 // Supports [text input][google.cloud.dialogflow.cx.v3.QueryInput.text], [event input][google.cloud.dialogflow.cx.v3.QueryInput.event], 2535 // [dtmf input][google.cloud.dialogflow.cx.v3.QueryInput.dtmf] in the test case. 2536 Input *QueryInput `protobuf:"bytes,5,opt,name=input,proto3" json:"input,omitempty"` 2537 // Parameters that need to be injected into the conversation during intent 2538 // detection. 2539 InjectedParameters *structpb.Struct `protobuf:"bytes,2,opt,name=injected_parameters,json=injectedParameters,proto3" json:"injected_parameters,omitempty"` 2540 // If webhooks should be allowed to trigger in response to the user 2541 // utterance. Often if parameters are injected, webhooks should not be 2542 // enabled. 2543 IsWebhookEnabled bool `protobuf:"varint,3,opt,name=is_webhook_enabled,json=isWebhookEnabled,proto3" json:"is_webhook_enabled,omitempty"` 2544 // Whether sentiment analysis is enabled. 2545 EnableSentimentAnalysis bool `protobuf:"varint,7,opt,name=enable_sentiment_analysis,json=enableSentimentAnalysis,proto3" json:"enable_sentiment_analysis,omitempty"` 2546} 2547 2548func (x *ConversationTurn_UserInput) Reset() { 2549 *x = ConversationTurn_UserInput{} 2550 if protoimpl.UnsafeEnabled { 2551 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[33] 2552 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2553 ms.StoreMessageInfo(mi) 2554 } 2555} 2556 2557func (x *ConversationTurn_UserInput) String() string { 2558 return protoimpl.X.MessageStringOf(x) 2559} 2560 2561func (*ConversationTurn_UserInput) ProtoMessage() {} 2562 2563func (x *ConversationTurn_UserInput) ProtoReflect() protoreflect.Message { 2564 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[33] 2565 if protoimpl.UnsafeEnabled && x != nil { 2566 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2567 if ms.LoadMessageInfo() == nil { 2568 ms.StoreMessageInfo(mi) 2569 } 2570 return ms 2571 } 2572 return mi.MessageOf(x) 2573} 2574 2575// Deprecated: Use ConversationTurn_UserInput.ProtoReflect.Descriptor instead. 2576func (*ConversationTurn_UserInput) Descriptor() ([]byte, []int) { 2577 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{3, 0} 2578} 2579 2580func (x *ConversationTurn_UserInput) GetInput() *QueryInput { 2581 if x != nil { 2582 return x.Input 2583 } 2584 return nil 2585} 2586 2587func (x *ConversationTurn_UserInput) GetInjectedParameters() *structpb.Struct { 2588 if x != nil { 2589 return x.InjectedParameters 2590 } 2591 return nil 2592} 2593 2594func (x *ConversationTurn_UserInput) GetIsWebhookEnabled() bool { 2595 if x != nil { 2596 return x.IsWebhookEnabled 2597 } 2598 return false 2599} 2600 2601func (x *ConversationTurn_UserInput) GetEnableSentimentAnalysis() bool { 2602 if x != nil { 2603 return x.EnableSentimentAnalysis 2604 } 2605 return false 2606} 2607 2608// The output from the virtual agent. 2609type ConversationTurn_VirtualAgentOutput struct { 2610 state protoimpl.MessageState 2611 sizeCache protoimpl.SizeCache 2612 unknownFields protoimpl.UnknownFields 2613 2614 // The session parameters available to the bot at this point. 2615 SessionParameters *structpb.Struct `protobuf:"bytes,4,opt,name=session_parameters,json=sessionParameters,proto3" json:"session_parameters,omitempty"` 2616 // Output only. If this is part of a [result conversation 2617 // turn][TestCaseResult.conversation_turns], the list of differences 2618 // between the original run and the replay for this output, if any. 2619 Differences []*TestRunDifference `protobuf:"bytes,5,rep,name=differences,proto3" json:"differences,omitempty"` 2620 // Required. Input only. The diagnostic 2621 // [info][Session.DetectIntentResponse.QueryResult.diagnostic_info] 2622 // output for the turn. Required to calculate the testing coverage. 2623 DiagnosticInfo *structpb.Struct `protobuf:"bytes,6,opt,name=diagnostic_info,json=diagnosticInfo,proto3" json:"diagnostic_info,omitempty"` 2624 // The [Intent][google.cloud.dialogflow.cx.v3.Intent] that triggered the response. Only name and displayName 2625 // will be set. 2626 TriggeredIntent *Intent `protobuf:"bytes,7,opt,name=triggered_intent,json=triggeredIntent,proto3" json:"triggered_intent,omitempty"` 2627 // The [Page][google.cloud.dialogflow.cx.v3.Page] on which the utterance was spoken. Only name and displayName 2628 // will be set. 2629 CurrentPage *Page `protobuf:"bytes,8,opt,name=current_page,json=currentPage,proto3" json:"current_page,omitempty"` 2630 // The [text][google.cloud.dialogflow.cx.v3.ResponseMessage.Text] responses from the agent for the turn. 2631 TextResponses []*ResponseMessage_Text `protobuf:"bytes,9,rep,name=text_responses,json=textResponses,proto3" json:"text_responses,omitempty"` 2632 // Response error from the agent in the test result. If set, other output 2633 // is empty. 2634 Status *status.Status `protobuf:"bytes,10,opt,name=status,proto3" json:"status,omitempty"` 2635} 2636 2637func (x *ConversationTurn_VirtualAgentOutput) Reset() { 2638 *x = ConversationTurn_VirtualAgentOutput{} 2639 if protoimpl.UnsafeEnabled { 2640 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[34] 2641 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2642 ms.StoreMessageInfo(mi) 2643 } 2644} 2645 2646func (x *ConversationTurn_VirtualAgentOutput) String() string { 2647 return protoimpl.X.MessageStringOf(x) 2648} 2649 2650func (*ConversationTurn_VirtualAgentOutput) ProtoMessage() {} 2651 2652func (x *ConversationTurn_VirtualAgentOutput) ProtoReflect() protoreflect.Message { 2653 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[34] 2654 if protoimpl.UnsafeEnabled && x != nil { 2655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2656 if ms.LoadMessageInfo() == nil { 2657 ms.StoreMessageInfo(mi) 2658 } 2659 return ms 2660 } 2661 return mi.MessageOf(x) 2662} 2663 2664// Deprecated: Use ConversationTurn_VirtualAgentOutput.ProtoReflect.Descriptor instead. 2665func (*ConversationTurn_VirtualAgentOutput) Descriptor() ([]byte, []int) { 2666 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{3, 1} 2667} 2668 2669func (x *ConversationTurn_VirtualAgentOutput) GetSessionParameters() *structpb.Struct { 2670 if x != nil { 2671 return x.SessionParameters 2672 } 2673 return nil 2674} 2675 2676func (x *ConversationTurn_VirtualAgentOutput) GetDifferences() []*TestRunDifference { 2677 if x != nil { 2678 return x.Differences 2679 } 2680 return nil 2681} 2682 2683func (x *ConversationTurn_VirtualAgentOutput) GetDiagnosticInfo() *structpb.Struct { 2684 if x != nil { 2685 return x.DiagnosticInfo 2686 } 2687 return nil 2688} 2689 2690func (x *ConversationTurn_VirtualAgentOutput) GetTriggeredIntent() *Intent { 2691 if x != nil { 2692 return x.TriggeredIntent 2693 } 2694 return nil 2695} 2696 2697func (x *ConversationTurn_VirtualAgentOutput) GetCurrentPage() *Page { 2698 if x != nil { 2699 return x.CurrentPage 2700 } 2701 return nil 2702} 2703 2704func (x *ConversationTurn_VirtualAgentOutput) GetTextResponses() []*ResponseMessage_Text { 2705 if x != nil { 2706 return x.TextResponses 2707 } 2708 return nil 2709} 2710 2711func (x *ConversationTurn_VirtualAgentOutput) GetStatus() *status.Status { 2712 if x != nil { 2713 return x.Status 2714 } 2715 return nil 2716} 2717 2718// The source or target of a transition. 2719type TransitionCoverage_TransitionNode struct { 2720 state protoimpl.MessageState 2721 sizeCache protoimpl.SizeCache 2722 unknownFields protoimpl.UnknownFields 2723 2724 // A TransitionNode can be either a page or a flow. 2725 // 2726 // Types that are assignable to Kind: 2727 // *TransitionCoverage_TransitionNode_Page 2728 // *TransitionCoverage_TransitionNode_Flow 2729 Kind isTransitionCoverage_TransitionNode_Kind `protobuf_oneof:"kind"` 2730} 2731 2732func (x *TransitionCoverage_TransitionNode) Reset() { 2733 *x = TransitionCoverage_TransitionNode{} 2734 if protoimpl.UnsafeEnabled { 2735 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[35] 2736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2737 ms.StoreMessageInfo(mi) 2738 } 2739} 2740 2741func (x *TransitionCoverage_TransitionNode) String() string { 2742 return protoimpl.X.MessageStringOf(x) 2743} 2744 2745func (*TransitionCoverage_TransitionNode) ProtoMessage() {} 2746 2747func (x *TransitionCoverage_TransitionNode) ProtoReflect() protoreflect.Message { 2748 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[35] 2749 if protoimpl.UnsafeEnabled && x != nil { 2750 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2751 if ms.LoadMessageInfo() == nil { 2752 ms.StoreMessageInfo(mi) 2753 } 2754 return ms 2755 } 2756 return mi.MessageOf(x) 2757} 2758 2759// Deprecated: Use TransitionCoverage_TransitionNode.ProtoReflect.Descriptor instead. 2760func (*TransitionCoverage_TransitionNode) Descriptor() ([]byte, []int) { 2761 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{5, 0} 2762} 2763 2764func (m *TransitionCoverage_TransitionNode) GetKind() isTransitionCoverage_TransitionNode_Kind { 2765 if m != nil { 2766 return m.Kind 2767 } 2768 return nil 2769} 2770 2771func (x *TransitionCoverage_TransitionNode) GetPage() *Page { 2772 if x, ok := x.GetKind().(*TransitionCoverage_TransitionNode_Page); ok { 2773 return x.Page 2774 } 2775 return nil 2776} 2777 2778func (x *TransitionCoverage_TransitionNode) GetFlow() *Flow { 2779 if x, ok := x.GetKind().(*TransitionCoverage_TransitionNode_Flow); ok { 2780 return x.Flow 2781 } 2782 return nil 2783} 2784 2785type isTransitionCoverage_TransitionNode_Kind interface { 2786 isTransitionCoverage_TransitionNode_Kind() 2787} 2788 2789type TransitionCoverage_TransitionNode_Page struct { 2790 // Indicates a transition to a [Page][google.cloud.dialogflow.cx.v3.Page]. Only some fields such as name and 2791 // displayname will be set. 2792 Page *Page `protobuf:"bytes,1,opt,name=page,proto3,oneof"` 2793} 2794 2795type TransitionCoverage_TransitionNode_Flow struct { 2796 // Indicates a transition to a [Flow][google.cloud.dialogflow.cx.v3.Flow]. Only some fields such as name and 2797 // displayname will be set. 2798 Flow *Flow `protobuf:"bytes,2,opt,name=flow,proto3,oneof"` 2799} 2800 2801func (*TransitionCoverage_TransitionNode_Page) isTransitionCoverage_TransitionNode_Kind() {} 2802 2803func (*TransitionCoverage_TransitionNode_Flow) isTransitionCoverage_TransitionNode_Kind() {} 2804 2805// A transition in a page. 2806type TransitionCoverage_Transition struct { 2807 state protoimpl.MessageState 2808 sizeCache protoimpl.SizeCache 2809 unknownFields protoimpl.UnknownFields 2810 2811 // The start node of a transition. 2812 Source *TransitionCoverage_TransitionNode `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` 2813 // The index of a transition in the transition list. Starting from 0. 2814 Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` 2815 // The end node of a transition. 2816 Target *TransitionCoverage_TransitionNode `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` 2817 // Whether or not the transition is covered by at least one of the 2818 // agent's test cases. 2819 Covered bool `protobuf:"varint,3,opt,name=covered,proto3" json:"covered,omitempty"` 2820 // The detailed transition. 2821 // 2822 // Types that are assignable to Detail: 2823 // *TransitionCoverage_Transition_TransitionRoute 2824 // *TransitionCoverage_Transition_EventHandler 2825 Detail isTransitionCoverage_Transition_Detail `protobuf_oneof:"detail"` 2826} 2827 2828func (x *TransitionCoverage_Transition) Reset() { 2829 *x = TransitionCoverage_Transition{} 2830 if protoimpl.UnsafeEnabled { 2831 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[36] 2832 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2833 ms.StoreMessageInfo(mi) 2834 } 2835} 2836 2837func (x *TransitionCoverage_Transition) String() string { 2838 return protoimpl.X.MessageStringOf(x) 2839} 2840 2841func (*TransitionCoverage_Transition) ProtoMessage() {} 2842 2843func (x *TransitionCoverage_Transition) ProtoReflect() protoreflect.Message { 2844 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[36] 2845 if protoimpl.UnsafeEnabled && x != nil { 2846 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2847 if ms.LoadMessageInfo() == nil { 2848 ms.StoreMessageInfo(mi) 2849 } 2850 return ms 2851 } 2852 return mi.MessageOf(x) 2853} 2854 2855// Deprecated: Use TransitionCoverage_Transition.ProtoReflect.Descriptor instead. 2856func (*TransitionCoverage_Transition) Descriptor() ([]byte, []int) { 2857 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{5, 1} 2858} 2859 2860func (x *TransitionCoverage_Transition) GetSource() *TransitionCoverage_TransitionNode { 2861 if x != nil { 2862 return x.Source 2863 } 2864 return nil 2865} 2866 2867func (x *TransitionCoverage_Transition) GetIndex() int32 { 2868 if x != nil { 2869 return x.Index 2870 } 2871 return 0 2872} 2873 2874func (x *TransitionCoverage_Transition) GetTarget() *TransitionCoverage_TransitionNode { 2875 if x != nil { 2876 return x.Target 2877 } 2878 return nil 2879} 2880 2881func (x *TransitionCoverage_Transition) GetCovered() bool { 2882 if x != nil { 2883 return x.Covered 2884 } 2885 return false 2886} 2887 2888func (m *TransitionCoverage_Transition) GetDetail() isTransitionCoverage_Transition_Detail { 2889 if m != nil { 2890 return m.Detail 2891 } 2892 return nil 2893} 2894 2895func (x *TransitionCoverage_Transition) GetTransitionRoute() *TransitionRoute { 2896 if x, ok := x.GetDetail().(*TransitionCoverage_Transition_TransitionRoute); ok { 2897 return x.TransitionRoute 2898 } 2899 return nil 2900} 2901 2902func (x *TransitionCoverage_Transition) GetEventHandler() *EventHandler { 2903 if x, ok := x.GetDetail().(*TransitionCoverage_Transition_EventHandler); ok { 2904 return x.EventHandler 2905 } 2906 return nil 2907} 2908 2909type isTransitionCoverage_Transition_Detail interface { 2910 isTransitionCoverage_Transition_Detail() 2911} 2912 2913type TransitionCoverage_Transition_TransitionRoute struct { 2914 // Intent route or condition route. 2915 TransitionRoute *TransitionRoute `protobuf:"bytes,5,opt,name=transition_route,json=transitionRoute,proto3,oneof"` 2916} 2917 2918type TransitionCoverage_Transition_EventHandler struct { 2919 // Event handler. 2920 EventHandler *EventHandler `protobuf:"bytes,6,opt,name=event_handler,json=eventHandler,proto3,oneof"` 2921} 2922 2923func (*TransitionCoverage_Transition_TransitionRoute) isTransitionCoverage_Transition_Detail() {} 2924 2925func (*TransitionCoverage_Transition_EventHandler) isTransitionCoverage_Transition_Detail() {} 2926 2927// Coverage result message for one transition route group. 2928type TransitionRouteGroupCoverage_Coverage struct { 2929 state protoimpl.MessageState 2930 sizeCache protoimpl.SizeCache 2931 unknownFields protoimpl.UnknownFields 2932 2933 // Transition route group metadata. Only name and displayName will be set. 2934 RouteGroup *TransitionRouteGroup `protobuf:"bytes,1,opt,name=route_group,json=routeGroup,proto3" json:"route_group,omitempty"` 2935 // The list of transition routes and coverage in the transition route group. 2936 Transitions []*TransitionRouteGroupCoverage_Coverage_Transition `protobuf:"bytes,2,rep,name=transitions,proto3" json:"transitions,omitempty"` 2937 // The percent of transition routes in the transition route group that are 2938 // covered. 2939 CoverageScore float32 `protobuf:"fixed32,3,opt,name=coverage_score,json=coverageScore,proto3" json:"coverage_score,omitempty"` 2940} 2941 2942func (x *TransitionRouteGroupCoverage_Coverage) Reset() { 2943 *x = TransitionRouteGroupCoverage_Coverage{} 2944 if protoimpl.UnsafeEnabled { 2945 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[37] 2946 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2947 ms.StoreMessageInfo(mi) 2948 } 2949} 2950 2951func (x *TransitionRouteGroupCoverage_Coverage) String() string { 2952 return protoimpl.X.MessageStringOf(x) 2953} 2954 2955func (*TransitionRouteGroupCoverage_Coverage) ProtoMessage() {} 2956 2957func (x *TransitionRouteGroupCoverage_Coverage) ProtoReflect() protoreflect.Message { 2958 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[37] 2959 if protoimpl.UnsafeEnabled && x != nil { 2960 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2961 if ms.LoadMessageInfo() == nil { 2962 ms.StoreMessageInfo(mi) 2963 } 2964 return ms 2965 } 2966 return mi.MessageOf(x) 2967} 2968 2969// Deprecated: Use TransitionRouteGroupCoverage_Coverage.ProtoReflect.Descriptor instead. 2970func (*TransitionRouteGroupCoverage_Coverage) Descriptor() ([]byte, []int) { 2971 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{6, 0} 2972} 2973 2974func (x *TransitionRouteGroupCoverage_Coverage) GetRouteGroup() *TransitionRouteGroup { 2975 if x != nil { 2976 return x.RouteGroup 2977 } 2978 return nil 2979} 2980 2981func (x *TransitionRouteGroupCoverage_Coverage) GetTransitions() []*TransitionRouteGroupCoverage_Coverage_Transition { 2982 if x != nil { 2983 return x.Transitions 2984 } 2985 return nil 2986} 2987 2988func (x *TransitionRouteGroupCoverage_Coverage) GetCoverageScore() float32 { 2989 if x != nil { 2990 return x.CoverageScore 2991 } 2992 return 0 2993} 2994 2995// A transition coverage in a transition route group. 2996type TransitionRouteGroupCoverage_Coverage_Transition struct { 2997 state protoimpl.MessageState 2998 sizeCache protoimpl.SizeCache 2999 unknownFields protoimpl.UnknownFields 3000 3001 // Intent route or condition route. 3002 TransitionRoute *TransitionRoute `protobuf:"bytes,1,opt,name=transition_route,json=transitionRoute,proto3" json:"transition_route,omitempty"` 3003 // Whether or not the transition route is covered by at least one of the 3004 // agent's test cases. 3005 Covered bool `protobuf:"varint,2,opt,name=covered,proto3" json:"covered,omitempty"` 3006} 3007 3008func (x *TransitionRouteGroupCoverage_Coverage_Transition) Reset() { 3009 *x = TransitionRouteGroupCoverage_Coverage_Transition{} 3010 if protoimpl.UnsafeEnabled { 3011 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[38] 3012 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3013 ms.StoreMessageInfo(mi) 3014 } 3015} 3016 3017func (x *TransitionRouteGroupCoverage_Coverage_Transition) String() string { 3018 return protoimpl.X.MessageStringOf(x) 3019} 3020 3021func (*TransitionRouteGroupCoverage_Coverage_Transition) ProtoMessage() {} 3022 3023func (x *TransitionRouteGroupCoverage_Coverage_Transition) ProtoReflect() protoreflect.Message { 3024 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[38] 3025 if protoimpl.UnsafeEnabled && x != nil { 3026 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3027 if ms.LoadMessageInfo() == nil { 3028 ms.StoreMessageInfo(mi) 3029 } 3030 return ms 3031 } 3032 return mi.MessageOf(x) 3033} 3034 3035// Deprecated: Use TransitionRouteGroupCoverage_Coverage_Transition.ProtoReflect.Descriptor instead. 3036func (*TransitionRouteGroupCoverage_Coverage_Transition) Descriptor() ([]byte, []int) { 3037 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{6, 0, 0} 3038} 3039 3040func (x *TransitionRouteGroupCoverage_Coverage_Transition) GetTransitionRoute() *TransitionRoute { 3041 if x != nil { 3042 return x.TransitionRoute 3043 } 3044 return nil 3045} 3046 3047func (x *TransitionRouteGroupCoverage_Coverage_Transition) GetCovered() bool { 3048 if x != nil { 3049 return x.Covered 3050 } 3051 return false 3052} 3053 3054// The agent's intent. 3055type IntentCoverage_Intent struct { 3056 state protoimpl.MessageState 3057 sizeCache protoimpl.SizeCache 3058 unknownFields protoimpl.UnknownFields 3059 3060 // The intent full resource name 3061 Intent string `protobuf:"bytes,1,opt,name=intent,proto3" json:"intent,omitempty"` 3062 // Whether or not the intent is covered by at least one of the agent's 3063 // test cases. 3064 Covered bool `protobuf:"varint,2,opt,name=covered,proto3" json:"covered,omitempty"` 3065} 3066 3067func (x *IntentCoverage_Intent) Reset() { 3068 *x = IntentCoverage_Intent{} 3069 if protoimpl.UnsafeEnabled { 3070 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[39] 3071 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3072 ms.StoreMessageInfo(mi) 3073 } 3074} 3075 3076func (x *IntentCoverage_Intent) String() string { 3077 return protoimpl.X.MessageStringOf(x) 3078} 3079 3080func (*IntentCoverage_Intent) ProtoMessage() {} 3081 3082func (x *IntentCoverage_Intent) ProtoReflect() protoreflect.Message { 3083 mi := &file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[39] 3084 if protoimpl.UnsafeEnabled && x != nil { 3085 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3086 if ms.LoadMessageInfo() == nil { 3087 ms.StoreMessageInfo(mi) 3088 } 3089 return ms 3090 } 3091 return mi.MessageOf(x) 3092} 3093 3094// Deprecated: Use IntentCoverage_Intent.ProtoReflect.Descriptor instead. 3095func (*IntentCoverage_Intent) Descriptor() ([]byte, []int) { 3096 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP(), []int{7, 0} 3097} 3098 3099func (x *IntentCoverage_Intent) GetIntent() string { 3100 if x != nil { 3101 return x.Intent 3102 } 3103 return "" 3104} 3105 3106func (x *IntentCoverage_Intent) GetCovered() bool { 3107 if x != nil { 3108 return x.Covered 3109 } 3110 return false 3111} 3112 3113var File_google_cloud_dialogflow_cx_v3_test_case_proto protoreflect.FileDescriptor 3114 3115var file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDesc = []byte{ 3116 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 3117 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x2f, 3118 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 3119 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3120 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x1a, 0x1c, 3121 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 3122 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 3123 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 3124 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 3125 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 3126 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 3127 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3128 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 3129 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 3130 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x6f, 0x6f, 3131 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3132 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 3133 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 3134 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3135 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3136 0x6f, 0x1a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 3137 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 3138 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 3139 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 3140 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3141 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 3142 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 3143 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 3144 0x2f, 0x76, 0x33, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 3145 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3146 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 3147 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 3148 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3149 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 3150 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3151 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 3152 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 3153 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 3154 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3155 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 3156 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 3157 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x04, 0x0a, 3158 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 3159 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 3160 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 3161 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 3162 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 3163 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 3164 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 3165 0x4a, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 3166 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3167 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 3168 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 3169 0x0a, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x70, 0x0a, 0x1c, 0x74, 3170 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 3171 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 3172 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3173 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3174 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 3175 0x72, 0x6e, 0x52, 0x19, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 3176 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x73, 0x12, 0x44, 0x0a, 3177 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 3178 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 3179 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 3180 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 3181 0x69, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x65, 0x73, 0x74, 3182 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 3183 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 3184 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 3185 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, 0x6c, 0x61, 3186 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x3a, 0x75, 0xea, 0x41, 3187 0x72, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 3188 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 3189 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x4c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 3190 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3191 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 3192 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x74, 0x65, 3193 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 3194 0x73, 0x65, 0x7d, 0x22, 0xe7, 0x03, 0x0a, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3195 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 3196 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x65, 0x6e, 3197 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 3198 0x2a, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3199 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3200 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 3201 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 3202 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x03, 3203 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3204 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 3205 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 3206 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 3207 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 3208 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 3209 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 3210 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 3211 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 3212 0x73, 0x75, 0x6c, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 3213 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3214 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 3215 0x61, 0x6d, 0x70, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x8d, 0x01, 3216 0xea, 0x41, 0x89, 0x01, 0x0a, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3217 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3218 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5d, 3219 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 3220 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 3221 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 3222 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3223 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 3224 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x7d, 0x22, 0x76, 0x0a, 3225 0x0a, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x13, 0x74, 3226 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 3227 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 3228 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x04, 3229 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 3230 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3231 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 3232 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x89, 0x08, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 3233 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x58, 0x0a, 0x0a, 0x75, 0x73, 3234 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 3235 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3236 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x43, 3237 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x2e, 3238 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 3239 0x6e, 0x70, 0x75, 0x74, 0x12, 0x74, 0x0a, 0x14, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 3240 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 3241 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3242 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3243 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 3244 0x75, 0x72, 0x6e, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 0x67, 0x65, 0x6e, 0x74, 3245 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 3246 0x67, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x80, 0x02, 0x0a, 0x09, 0x55, 3247 0x73, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3f, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 3248 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3249 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3250 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 3251 0x75, 0x74, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x48, 0x0a, 0x13, 0x69, 0x6e, 0x6a, 3252 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 3253 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3254 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 3255 0x12, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 3256 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 3257 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 3258 0x10, 0x69, 0x73, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 3259 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x74, 3260 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x07, 3261 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x74, 3262 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x1a, 0xa1, 0x04, 3263 0x0a, 0x12, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4f, 0x75, 3264 0x74, 0x70, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 3265 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 3266 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 3267 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 3268 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x0b, 3269 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 3270 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3271 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3272 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 3273 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 3274 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 3275 0x74, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 3276 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3277 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x04, 0x52, 3278 0x0e, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 3279 0x50, 0x0a, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 3280 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3281 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3282 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 3283 0x52, 0x0f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x6e, 3284 0x74, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x67, 3285 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3286 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3287 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x75, 3288 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x74, 0x65, 0x78, 3289 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 3290 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3291 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3292 0x33, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 3293 0x65, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 3294 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 3295 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 3296 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 3297 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x66, 3298 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 3299 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3300 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3301 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x66, 3302 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 3303 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 3304 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 3305 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5a, 0x0a, 0x08, 0x44, 0x69, 0x66, 0x66, 3306 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 3307 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 3308 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 3309 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 3310 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x54, 0x54, 0x45, 0x52, 0x41, 0x4e, 3311 0x43, 0x45, 0x10, 0x04, 0x22, 0xda, 0x05, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 3312 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x5e, 0x0a, 0x0b, 0x74, 3313 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 3314 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3315 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3316 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 3317 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 3318 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 3319 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 3320 0x01, 0x28, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 3321 0x72, 0x65, 0x1a, 0x8e, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 3322 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 3323 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3324 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3325 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 3326 0x12, 0x39, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 3327 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3328 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x46, 3329 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x6b, 3330 0x69, 0x6e, 0x64, 0x1a, 0xab, 0x03, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 3331 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 3332 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3333 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3334 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 3335 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 3336 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 3337 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 3338 0x65, 0x78, 0x12, 0x58, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 3339 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3340 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3341 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 3342 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 3343 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 3344 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 3345 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x12, 0x5b, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 3346 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 3347 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3348 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3349 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 3350 0x48, 0x00, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 3351 0x75, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x6e, 3352 0x64, 0x6c, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 3353 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3354 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 3355 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 3356 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 3357 0x6c, 0x22, 0xaa, 0x04, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 3358 0x52, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 3359 0x67, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 3360 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3361 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3362 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 3363 0x52, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 3364 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x76, 3365 0x65, 0x72, 0x61, 0x67, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 3366 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 3367 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0xfe, 0x02, 3368 0x0a, 0x08, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x54, 0x0a, 0x0b, 0x72, 0x6f, 3369 0x75, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 3370 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3371 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 3372 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x47, 3373 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 3374 0x12, 0x71, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 3375 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3376 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3377 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 3378 0x52, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 3379 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 3380 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 3381 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 3382 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x76, 3383 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x81, 0x01, 0x0a, 0x0a, 0x54, 3384 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x10, 0x74, 0x72, 0x61, 3385 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 3386 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3387 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3388 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 3389 0x75, 0x74, 0x65, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3390 0x6f, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 3391 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x22, 0xea, 3392 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 3393 0x65, 0x12, 0x4e, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 3394 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3395 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3396 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 3397 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 3398 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 3399 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 3400 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x61, 0x0a, 0x06, 0x49, 0x6e, 0x74, 0x65, 3401 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 3402 0x28, 0x09, 0x42, 0x25, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3403 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3404 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 3405 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 3406 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x22, 0xa4, 0x02, 0x0a, 0x18, 3407 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 3408 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 3409 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 3410 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3411 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 3412 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 3413 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3414 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3415 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 3416 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 3417 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 3418 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x0c, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 3419 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x41, 3420 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 3421 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 3422 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 3423 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 3424 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 3425 0x10, 0x03, 0x22, 0x99, 0x03, 0x0a, 0x19, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 3426 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3427 0x12, 0x3a, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 3428 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3429 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3430 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x0f, 3431 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 3432 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3433 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3434 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 3435 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 3436 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 3437 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 3438 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3439 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3440 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 3441 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 3442 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x6f, 0x0a, 0x14, 3443 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x76, 0x65, 3444 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 3445 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3446 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 3447 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 3448 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 3449 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x0f, 0x0a, 3450 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb1, 3451 0x02, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3452 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 3453 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 3454 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3455 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 3456 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 3457 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 3458 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 3459 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 3460 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x54, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 3461 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3462 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3463 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3464 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 3465 0x61, 0x73, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x22, 0x43, 0x0a, 3466 0x0c, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1e, 0x0a, 3467 0x1a, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 3468 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 3469 0x05, 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 3470 0x10, 0x02, 0x22, 0x87, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 3471 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0a, 3472 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 3473 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3474 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3475 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x43, 3476 0x61, 0x73, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 3477 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 3478 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa3, 0x01, 0x0a, 3479 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 3480 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 3481 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 3482 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3483 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3484 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 3485 0x12, 0x40, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 3486 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3487 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3488 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 0x6e, 0x61, 0x6d, 3489 0x65, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 3490 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 3491 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 3492 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3493 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3494 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 3495 0x12, 0x49, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 3496 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3497 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3498 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 3499 0x02, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x15, 3500 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 3501 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 3502 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3503 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 3504 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3505 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3506 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 3507 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3508 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 3509 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 3510 0x73, 0x6b, 0x22, 0x54, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3511 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 3512 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 3513 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3514 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3515 0x73, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x52, 0x75, 0x6e, 3516 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3517 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 3518 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3519 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3520 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 3521 0x4f, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 3522 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 3523 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 3524 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 3525 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 3526 0x22, 0x5c, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3527 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 3528 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3529 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3530 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3531 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x15, 3532 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 3533 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x01, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 3534 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 3535 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 3536 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 3537 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 3538 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 3539 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 3540 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 3541 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3542 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 3543 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 3544 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 3545 0x63, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 3546 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3547 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 3548 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3549 0x65, 0x73, 0x22, 0x64, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 3550 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 3551 0x47, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 3552 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3553 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3554 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 3555 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x5d, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 3556 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 3557 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 3558 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3559 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3560 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 3561 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 3562 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 3563 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 3564 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3565 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3566 0x65, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x73, 3567 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 3568 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 3569 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 3570 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 3571 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 3572 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 3573 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 3574 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 3575 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 3576 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3577 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 3578 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 3579 0x19, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3580 0x48, 0x00, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 3581 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 3582 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 3583 0x22, 0x58, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3584 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x6e, 3585 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 3586 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3587 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 3588 0x61, 0x73, 0x65, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x5f, 0x0a, 0x17, 0x49, 0x6d, 3589 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 3590 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 3591 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3592 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3593 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x45, 0x72, 3594 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x0d, 3595 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 3596 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 3597 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3598 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3599 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 3600 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 3601 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 3602 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 3603 0xc0, 0x02, 0x0a, 0x16, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3604 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 3605 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 3606 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 3607 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 3608 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 3609 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 3610 0x00, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x61, 0x0a, 0x0b, 0x64, 0x61, 0x74, 3611 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 3612 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3613 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 3614 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 3615 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 3616 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 3617 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 3618 0x6c, 0x74, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 3619 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 3620 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 3621 0x08, 0x0a, 0x04, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 3622 0x4e, 0x10, 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 3623 0x6f, 0x6e, 0x22, 0x5f, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 3624 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 3625 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 3626 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 3627 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 3628 0x74, 0x65, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 3629 0x69, 0x6f, 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 3630 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 3631 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3632 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 3633 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 3634 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x12, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3635 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3636 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 3637 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 3638 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 3639 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 3640 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 3641 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 3642 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa0, 0x01, 0x0a, 0x1b, 3643 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 3644 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x11, 0x74, 3645 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 3646 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3647 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3648 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3649 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3650 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 3651 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 3652 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x60, 3653 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 3654 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 3655 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 3656 0x0a, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 3657 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 3658 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 3659 0x2a, 0x41, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 3660 0x0a, 0x17, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, 0x4e, 3661 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 3662 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 3663 0x44, 0x10, 0x02, 0x32, 0x99, 0x15, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3664 0x73, 0x12, 0xc3, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3665 0x73, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3666 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3667 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3668 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3669 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 3670 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 3671 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 3672 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x70, 0x61, 0x72, 3673 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 3674 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 3675 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0xda, 0x41, 3676 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xc2, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 3677 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3678 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3679 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3680 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 3681 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 3682 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 3683 0x6d, 0x70, 0x74, 0x79, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x76, 3684 0x33, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 3685 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 3686 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 3687 0x61, 0x73, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 3688 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb0, 0x01, 0x0a, 3689 0x0b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x31, 0x2e, 0x67, 3690 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 3691 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x47, 0x65, 0x74, 3692 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 3693 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3694 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 3695 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 3696 0x12, 0x36, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 3697 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3698 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 3699 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 3700 0xcd, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3701 0x73, 0x65, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3702 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3703 0x76, 0x33, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3704 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3705 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 3706 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3707 0x65, 0x22, 0x5c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x22, 0x36, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 3708 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 3709 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 3710 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3711 0x73, 0x3a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0xda, 0x41, 0x10, 0x70, 3712 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x12, 3713 0xdc, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3714 0x73, 0x65, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3715 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3716 0x76, 0x33, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3717 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3718 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 3719 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3720 0x65, 0x22, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x32, 0x40, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 3721 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 3722 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3723 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 3724 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x09, 0x74, 0x65, 0x73, 3725 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0xda, 0x41, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 3726 0x73, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xd3, 3727 0x01, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x31, 3728 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3729 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x52, 3730 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3731 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 3732 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3733 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x3a, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x6e, 3734 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 3735 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 3736 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 3737 0x3a, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x2a, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 3738 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 3739 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 3740 0x64, 0x61, 0x74, 0x61, 0x12, 0xf1, 0x01, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 3741 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 3742 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3743 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 3744 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 3745 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 3746 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 3747 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x22, 0x3f, 0x2f, 0x76, 0x33, 3748 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 3749 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 3750 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 3751 0x73, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0xca, 3752 0x41, 0x36, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 3753 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x42, 3754 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3755 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xd7, 0x01, 0x0a, 0x11, 0x43, 0x61, 0x6c, 3756 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x37, 3757 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3758 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x43, 3759 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 3760 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3761 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3762 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 3763 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3764 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 3765 0x61, 0x67, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 3766 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 3767 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3768 0x3a, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 3769 0x67, 0x65, 0x12, 0xe6, 0x01, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 3770 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3771 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3772 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 3773 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 3774 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 3775 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x82, 0xd3, 3776 0xe4, 0x93, 0x02, 0x42, 0x22, 0x3d, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 3777 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 3778 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 3779 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x69, 0x6d, 0x70, 3780 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x32, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 3781 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 3782 0x73, 0x65, 0x12, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3783 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe6, 0x01, 0x0a, 0x0f, 3784 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 3785 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3786 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 3787 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 3788 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3789 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 3790 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x22, 0x3d, 0x2f, 3791 0x76, 0x33, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 3792 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 3793 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 3794 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 3795 0x41, 0x32, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3796 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x45, 0x78, 0x70, 3797 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 3798 0x64, 0x61, 0x74, 0x61, 0x12, 0xdf, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 3799 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x67, 3800 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 3801 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 3802 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 3803 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3804 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3805 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 3806 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 3807 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 0x2f, 0x76, 0x33, 3808 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 3809 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 3810 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3811 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0xda, 0x41, 0x06, 3812 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xcc, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x65, 3813 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x37, 0x2e, 0x67, 3814 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 3815 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x47, 0x65, 0x74, 3816 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 3817 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3818 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3819 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 3820 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 0x2f, 0x76, 3821 0x33, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 3822 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 3823 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3824 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 3825 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x78, 0xca, 0x41, 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3826 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3827 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x59, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 3828 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3829 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 3830 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 3831 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3832 0x61, 0x75, 0x74, 0x68, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 3833 0xc1, 0x01, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3834 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3835 0x63, 0x78, 0x2e, 0x76, 0x33, 0x42, 0x0d, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x50, 3836 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 3837 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 3838 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 3839 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 3840 0x78, 0x2f, 0x76, 0x33, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 3841 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 3842 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0xea, 3843 0x02, 0x21, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 3844 0x3a, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x3a, 0x43, 0x58, 0x3a, 3845 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 3846} 3847 3848var ( 3849 file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescOnce sync.Once 3850 file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescData = file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDesc 3851) 3852 3853func file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescGZIP() []byte { 3854 file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescOnce.Do(func() { 3855 file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescData) 3856 }) 3857 return file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDescData 3858} 3859 3860var file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes = make([]protoimpl.EnumInfo, 5) 3861var file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes = make([]protoimpl.MessageInfo, 40) 3862var file_google_cloud_dialogflow_cx_v3_test_case_proto_goTypes = []interface{}{ 3863 (TestResult)(0), // 0: google.cloud.dialogflow.cx.v3.TestResult 3864 (TestRunDifference_DiffType)(0), // 1: google.cloud.dialogflow.cx.v3.TestRunDifference.DiffType 3865 (CalculateCoverageRequest_CoverageType)(0), // 2: google.cloud.dialogflow.cx.v3.CalculateCoverageRequest.CoverageType 3866 (ListTestCasesRequest_TestCaseView)(0), // 3: google.cloud.dialogflow.cx.v3.ListTestCasesRequest.TestCaseView 3867 (ExportTestCasesRequest_DataFormat)(0), // 4: google.cloud.dialogflow.cx.v3.ExportTestCasesRequest.DataFormat 3868 (*TestCase)(nil), // 5: google.cloud.dialogflow.cx.v3.TestCase 3869 (*TestCaseResult)(nil), // 6: google.cloud.dialogflow.cx.v3.TestCaseResult 3870 (*TestConfig)(nil), // 7: google.cloud.dialogflow.cx.v3.TestConfig 3871 (*ConversationTurn)(nil), // 8: google.cloud.dialogflow.cx.v3.ConversationTurn 3872 (*TestRunDifference)(nil), // 9: google.cloud.dialogflow.cx.v3.TestRunDifference 3873 (*TransitionCoverage)(nil), // 10: google.cloud.dialogflow.cx.v3.TransitionCoverage 3874 (*TransitionRouteGroupCoverage)(nil), // 11: google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage 3875 (*IntentCoverage)(nil), // 12: google.cloud.dialogflow.cx.v3.IntentCoverage 3876 (*CalculateCoverageRequest)(nil), // 13: google.cloud.dialogflow.cx.v3.CalculateCoverageRequest 3877 (*CalculateCoverageResponse)(nil), // 14: google.cloud.dialogflow.cx.v3.CalculateCoverageResponse 3878 (*ListTestCasesRequest)(nil), // 15: google.cloud.dialogflow.cx.v3.ListTestCasesRequest 3879 (*ListTestCasesResponse)(nil), // 16: google.cloud.dialogflow.cx.v3.ListTestCasesResponse 3880 (*BatchDeleteTestCasesRequest)(nil), // 17: google.cloud.dialogflow.cx.v3.BatchDeleteTestCasesRequest 3881 (*CreateTestCaseRequest)(nil), // 18: google.cloud.dialogflow.cx.v3.CreateTestCaseRequest 3882 (*UpdateTestCaseRequest)(nil), // 19: google.cloud.dialogflow.cx.v3.UpdateTestCaseRequest 3883 (*GetTestCaseRequest)(nil), // 20: google.cloud.dialogflow.cx.v3.GetTestCaseRequest 3884 (*RunTestCaseRequest)(nil), // 21: google.cloud.dialogflow.cx.v3.RunTestCaseRequest 3885 (*RunTestCaseResponse)(nil), // 22: google.cloud.dialogflow.cx.v3.RunTestCaseResponse 3886 (*RunTestCaseMetadata)(nil), // 23: google.cloud.dialogflow.cx.v3.RunTestCaseMetadata 3887 (*BatchRunTestCasesRequest)(nil), // 24: google.cloud.dialogflow.cx.v3.BatchRunTestCasesRequest 3888 (*BatchRunTestCasesResponse)(nil), // 25: google.cloud.dialogflow.cx.v3.BatchRunTestCasesResponse 3889 (*BatchRunTestCasesMetadata)(nil), // 26: google.cloud.dialogflow.cx.v3.BatchRunTestCasesMetadata 3890 (*TestError)(nil), // 27: google.cloud.dialogflow.cx.v3.TestError 3891 (*ImportTestCasesRequest)(nil), // 28: google.cloud.dialogflow.cx.v3.ImportTestCasesRequest 3892 (*ImportTestCasesResponse)(nil), // 29: google.cloud.dialogflow.cx.v3.ImportTestCasesResponse 3893 (*ImportTestCasesMetadata)(nil), // 30: google.cloud.dialogflow.cx.v3.ImportTestCasesMetadata 3894 (*TestCaseError)(nil), // 31: google.cloud.dialogflow.cx.v3.TestCaseError 3895 (*ExportTestCasesRequest)(nil), // 32: google.cloud.dialogflow.cx.v3.ExportTestCasesRequest 3896 (*ExportTestCasesResponse)(nil), // 33: google.cloud.dialogflow.cx.v3.ExportTestCasesResponse 3897 (*ExportTestCasesMetadata)(nil), // 34: google.cloud.dialogflow.cx.v3.ExportTestCasesMetadata 3898 (*ListTestCaseResultsRequest)(nil), // 35: google.cloud.dialogflow.cx.v3.ListTestCaseResultsRequest 3899 (*ListTestCaseResultsResponse)(nil), // 36: google.cloud.dialogflow.cx.v3.ListTestCaseResultsResponse 3900 (*GetTestCaseResultRequest)(nil), // 37: google.cloud.dialogflow.cx.v3.GetTestCaseResultRequest 3901 (*ConversationTurn_UserInput)(nil), // 38: google.cloud.dialogflow.cx.v3.ConversationTurn.UserInput 3902 (*ConversationTurn_VirtualAgentOutput)(nil), // 39: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput 3903 (*TransitionCoverage_TransitionNode)(nil), // 40: google.cloud.dialogflow.cx.v3.TransitionCoverage.TransitionNode 3904 (*TransitionCoverage_Transition)(nil), // 41: google.cloud.dialogflow.cx.v3.TransitionCoverage.Transition 3905 (*TransitionRouteGroupCoverage_Coverage)(nil), // 42: google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.Coverage 3906 (*TransitionRouteGroupCoverage_Coverage_Transition)(nil), // 43: google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.Coverage.Transition 3907 (*IntentCoverage_Intent)(nil), // 44: google.cloud.dialogflow.cx.v3.IntentCoverage.Intent 3908 (*timestamppb.Timestamp)(nil), // 45: google.protobuf.Timestamp 3909 (*fieldmaskpb.FieldMask)(nil), // 46: google.protobuf.FieldMask 3910 (*status.Status)(nil), // 47: google.rpc.Status 3911 (*QueryInput)(nil), // 48: google.cloud.dialogflow.cx.v3.QueryInput 3912 (*structpb.Struct)(nil), // 49: google.protobuf.Struct 3913 (*Intent)(nil), // 50: google.cloud.dialogflow.cx.v3.Intent 3914 (*Page)(nil), // 51: google.cloud.dialogflow.cx.v3.Page 3915 (*ResponseMessage_Text)(nil), // 52: google.cloud.dialogflow.cx.v3.ResponseMessage.Text 3916 (*Flow)(nil), // 53: google.cloud.dialogflow.cx.v3.Flow 3917 (*TransitionRoute)(nil), // 54: google.cloud.dialogflow.cx.v3.TransitionRoute 3918 (*EventHandler)(nil), // 55: google.cloud.dialogflow.cx.v3.EventHandler 3919 (*TransitionRouteGroup)(nil), // 56: google.cloud.dialogflow.cx.v3.TransitionRouteGroup 3920 (*emptypb.Empty)(nil), // 57: google.protobuf.Empty 3921 (*longrunning.Operation)(nil), // 58: google.longrunning.Operation 3922} 3923var file_google_cloud_dialogflow_cx_v3_test_case_proto_depIdxs = []int32{ 3924 7, // 0: google.cloud.dialogflow.cx.v3.TestCase.test_config:type_name -> google.cloud.dialogflow.cx.v3.TestConfig 3925 8, // 1: google.cloud.dialogflow.cx.v3.TestCase.test_case_conversation_turns:type_name -> google.cloud.dialogflow.cx.v3.ConversationTurn 3926 45, // 2: google.cloud.dialogflow.cx.v3.TestCase.creation_time:type_name -> google.protobuf.Timestamp 3927 6, // 3: google.cloud.dialogflow.cx.v3.TestCase.last_test_result:type_name -> google.cloud.dialogflow.cx.v3.TestCaseResult 3928 8, // 4: google.cloud.dialogflow.cx.v3.TestCaseResult.conversation_turns:type_name -> google.cloud.dialogflow.cx.v3.ConversationTurn 3929 0, // 5: google.cloud.dialogflow.cx.v3.TestCaseResult.test_result:type_name -> google.cloud.dialogflow.cx.v3.TestResult 3930 45, // 6: google.cloud.dialogflow.cx.v3.TestCaseResult.test_time:type_name -> google.protobuf.Timestamp 3931 38, // 7: google.cloud.dialogflow.cx.v3.ConversationTurn.user_input:type_name -> google.cloud.dialogflow.cx.v3.ConversationTurn.UserInput 3932 39, // 8: google.cloud.dialogflow.cx.v3.ConversationTurn.virtual_agent_output:type_name -> google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput 3933 1, // 9: google.cloud.dialogflow.cx.v3.TestRunDifference.type:type_name -> google.cloud.dialogflow.cx.v3.TestRunDifference.DiffType 3934 41, // 10: google.cloud.dialogflow.cx.v3.TransitionCoverage.transitions:type_name -> google.cloud.dialogflow.cx.v3.TransitionCoverage.Transition 3935 42, // 11: google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.coverages:type_name -> google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.Coverage 3936 44, // 12: google.cloud.dialogflow.cx.v3.IntentCoverage.intents:type_name -> google.cloud.dialogflow.cx.v3.IntentCoverage.Intent 3937 2, // 13: google.cloud.dialogflow.cx.v3.CalculateCoverageRequest.type:type_name -> google.cloud.dialogflow.cx.v3.CalculateCoverageRequest.CoverageType 3938 12, // 14: google.cloud.dialogflow.cx.v3.CalculateCoverageResponse.intent_coverage:type_name -> google.cloud.dialogflow.cx.v3.IntentCoverage 3939 10, // 15: google.cloud.dialogflow.cx.v3.CalculateCoverageResponse.transition_coverage:type_name -> google.cloud.dialogflow.cx.v3.TransitionCoverage 3940 11, // 16: google.cloud.dialogflow.cx.v3.CalculateCoverageResponse.route_group_coverage:type_name -> google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage 3941 3, // 17: google.cloud.dialogflow.cx.v3.ListTestCasesRequest.view:type_name -> google.cloud.dialogflow.cx.v3.ListTestCasesRequest.TestCaseView 3942 5, // 18: google.cloud.dialogflow.cx.v3.ListTestCasesResponse.test_cases:type_name -> google.cloud.dialogflow.cx.v3.TestCase 3943 5, // 19: google.cloud.dialogflow.cx.v3.CreateTestCaseRequest.test_case:type_name -> google.cloud.dialogflow.cx.v3.TestCase 3944 5, // 20: google.cloud.dialogflow.cx.v3.UpdateTestCaseRequest.test_case:type_name -> google.cloud.dialogflow.cx.v3.TestCase 3945 46, // 21: google.cloud.dialogflow.cx.v3.UpdateTestCaseRequest.update_mask:type_name -> google.protobuf.FieldMask 3946 6, // 22: google.cloud.dialogflow.cx.v3.RunTestCaseResponse.result:type_name -> google.cloud.dialogflow.cx.v3.TestCaseResult 3947 6, // 23: google.cloud.dialogflow.cx.v3.BatchRunTestCasesResponse.results:type_name -> google.cloud.dialogflow.cx.v3.TestCaseResult 3948 27, // 24: google.cloud.dialogflow.cx.v3.BatchRunTestCasesMetadata.errors:type_name -> google.cloud.dialogflow.cx.v3.TestError 3949 47, // 25: google.cloud.dialogflow.cx.v3.TestError.status:type_name -> google.rpc.Status 3950 45, // 26: google.cloud.dialogflow.cx.v3.TestError.test_time:type_name -> google.protobuf.Timestamp 3951 31, // 27: google.cloud.dialogflow.cx.v3.ImportTestCasesMetadata.errors:type_name -> google.cloud.dialogflow.cx.v3.TestCaseError 3952 5, // 28: google.cloud.dialogflow.cx.v3.TestCaseError.test_case:type_name -> google.cloud.dialogflow.cx.v3.TestCase 3953 47, // 29: google.cloud.dialogflow.cx.v3.TestCaseError.status:type_name -> google.rpc.Status 3954 4, // 30: google.cloud.dialogflow.cx.v3.ExportTestCasesRequest.data_format:type_name -> google.cloud.dialogflow.cx.v3.ExportTestCasesRequest.DataFormat 3955 6, // 31: google.cloud.dialogflow.cx.v3.ListTestCaseResultsResponse.test_case_results:type_name -> google.cloud.dialogflow.cx.v3.TestCaseResult 3956 48, // 32: google.cloud.dialogflow.cx.v3.ConversationTurn.UserInput.input:type_name -> google.cloud.dialogflow.cx.v3.QueryInput 3957 49, // 33: google.cloud.dialogflow.cx.v3.ConversationTurn.UserInput.injected_parameters:type_name -> google.protobuf.Struct 3958 49, // 34: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput.session_parameters:type_name -> google.protobuf.Struct 3959 9, // 35: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput.differences:type_name -> google.cloud.dialogflow.cx.v3.TestRunDifference 3960 49, // 36: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput.diagnostic_info:type_name -> google.protobuf.Struct 3961 50, // 37: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput.triggered_intent:type_name -> google.cloud.dialogflow.cx.v3.Intent 3962 51, // 38: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput.current_page:type_name -> google.cloud.dialogflow.cx.v3.Page 3963 52, // 39: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput.text_responses:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.Text 3964 47, // 40: google.cloud.dialogflow.cx.v3.ConversationTurn.VirtualAgentOutput.status:type_name -> google.rpc.Status 3965 51, // 41: google.cloud.dialogflow.cx.v3.TransitionCoverage.TransitionNode.page:type_name -> google.cloud.dialogflow.cx.v3.Page 3966 53, // 42: google.cloud.dialogflow.cx.v3.TransitionCoverage.TransitionNode.flow:type_name -> google.cloud.dialogflow.cx.v3.Flow 3967 40, // 43: google.cloud.dialogflow.cx.v3.TransitionCoverage.Transition.source:type_name -> google.cloud.dialogflow.cx.v3.TransitionCoverage.TransitionNode 3968 40, // 44: google.cloud.dialogflow.cx.v3.TransitionCoverage.Transition.target:type_name -> google.cloud.dialogflow.cx.v3.TransitionCoverage.TransitionNode 3969 54, // 45: google.cloud.dialogflow.cx.v3.TransitionCoverage.Transition.transition_route:type_name -> google.cloud.dialogflow.cx.v3.TransitionRoute 3970 55, // 46: google.cloud.dialogflow.cx.v3.TransitionCoverage.Transition.event_handler:type_name -> google.cloud.dialogflow.cx.v3.EventHandler 3971 56, // 47: google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.Coverage.route_group:type_name -> google.cloud.dialogflow.cx.v3.TransitionRouteGroup 3972 43, // 48: google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.Coverage.transitions:type_name -> google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.Coverage.Transition 3973 54, // 49: google.cloud.dialogflow.cx.v3.TransitionRouteGroupCoverage.Coverage.Transition.transition_route:type_name -> google.cloud.dialogflow.cx.v3.TransitionRoute 3974 15, // 50: google.cloud.dialogflow.cx.v3.TestCases.ListTestCases:input_type -> google.cloud.dialogflow.cx.v3.ListTestCasesRequest 3975 17, // 51: google.cloud.dialogflow.cx.v3.TestCases.BatchDeleteTestCases:input_type -> google.cloud.dialogflow.cx.v3.BatchDeleteTestCasesRequest 3976 20, // 52: google.cloud.dialogflow.cx.v3.TestCases.GetTestCase:input_type -> google.cloud.dialogflow.cx.v3.GetTestCaseRequest 3977 18, // 53: google.cloud.dialogflow.cx.v3.TestCases.CreateTestCase:input_type -> google.cloud.dialogflow.cx.v3.CreateTestCaseRequest 3978 19, // 54: google.cloud.dialogflow.cx.v3.TestCases.UpdateTestCase:input_type -> google.cloud.dialogflow.cx.v3.UpdateTestCaseRequest 3979 21, // 55: google.cloud.dialogflow.cx.v3.TestCases.RunTestCase:input_type -> google.cloud.dialogflow.cx.v3.RunTestCaseRequest 3980 24, // 56: google.cloud.dialogflow.cx.v3.TestCases.BatchRunTestCases:input_type -> google.cloud.dialogflow.cx.v3.BatchRunTestCasesRequest 3981 13, // 57: google.cloud.dialogflow.cx.v3.TestCases.CalculateCoverage:input_type -> google.cloud.dialogflow.cx.v3.CalculateCoverageRequest 3982 28, // 58: google.cloud.dialogflow.cx.v3.TestCases.ImportTestCases:input_type -> google.cloud.dialogflow.cx.v3.ImportTestCasesRequest 3983 32, // 59: google.cloud.dialogflow.cx.v3.TestCases.ExportTestCases:input_type -> google.cloud.dialogflow.cx.v3.ExportTestCasesRequest 3984 35, // 60: google.cloud.dialogflow.cx.v3.TestCases.ListTestCaseResults:input_type -> google.cloud.dialogflow.cx.v3.ListTestCaseResultsRequest 3985 37, // 61: google.cloud.dialogflow.cx.v3.TestCases.GetTestCaseResult:input_type -> google.cloud.dialogflow.cx.v3.GetTestCaseResultRequest 3986 16, // 62: google.cloud.dialogflow.cx.v3.TestCases.ListTestCases:output_type -> google.cloud.dialogflow.cx.v3.ListTestCasesResponse 3987 57, // 63: google.cloud.dialogflow.cx.v3.TestCases.BatchDeleteTestCases:output_type -> google.protobuf.Empty 3988 5, // 64: google.cloud.dialogflow.cx.v3.TestCases.GetTestCase:output_type -> google.cloud.dialogflow.cx.v3.TestCase 3989 5, // 65: google.cloud.dialogflow.cx.v3.TestCases.CreateTestCase:output_type -> google.cloud.dialogflow.cx.v3.TestCase 3990 5, // 66: google.cloud.dialogflow.cx.v3.TestCases.UpdateTestCase:output_type -> google.cloud.dialogflow.cx.v3.TestCase 3991 58, // 67: google.cloud.dialogflow.cx.v3.TestCases.RunTestCase:output_type -> google.longrunning.Operation 3992 58, // 68: google.cloud.dialogflow.cx.v3.TestCases.BatchRunTestCases:output_type -> google.longrunning.Operation 3993 14, // 69: google.cloud.dialogflow.cx.v3.TestCases.CalculateCoverage:output_type -> google.cloud.dialogflow.cx.v3.CalculateCoverageResponse 3994 58, // 70: google.cloud.dialogflow.cx.v3.TestCases.ImportTestCases:output_type -> google.longrunning.Operation 3995 58, // 71: google.cloud.dialogflow.cx.v3.TestCases.ExportTestCases:output_type -> google.longrunning.Operation 3996 36, // 72: google.cloud.dialogflow.cx.v3.TestCases.ListTestCaseResults:output_type -> google.cloud.dialogflow.cx.v3.ListTestCaseResultsResponse 3997 6, // 73: google.cloud.dialogflow.cx.v3.TestCases.GetTestCaseResult:output_type -> google.cloud.dialogflow.cx.v3.TestCaseResult 3998 62, // [62:74] is the sub-list for method output_type 3999 50, // [50:62] is the sub-list for method input_type 4000 50, // [50:50] is the sub-list for extension type_name 4001 50, // [50:50] is the sub-list for extension extendee 4002 0, // [0:50] is the sub-list for field type_name 4003} 4004 4005func init() { file_google_cloud_dialogflow_cx_v3_test_case_proto_init() } 4006func file_google_cloud_dialogflow_cx_v3_test_case_proto_init() { 4007 if File_google_cloud_dialogflow_cx_v3_test_case_proto != nil { 4008 return 4009 } 4010 file_google_cloud_dialogflow_cx_v3_flow_proto_init() 4011 file_google_cloud_dialogflow_cx_v3_intent_proto_init() 4012 file_google_cloud_dialogflow_cx_v3_page_proto_init() 4013 file_google_cloud_dialogflow_cx_v3_response_message_proto_init() 4014 file_google_cloud_dialogflow_cx_v3_session_proto_init() 4015 file_google_cloud_dialogflow_cx_v3_transition_route_group_proto_init() 4016 if !protoimpl.UnsafeEnabled { 4017 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4018 switch v := v.(*TestCase); i { 4019 case 0: 4020 return &v.state 4021 case 1: 4022 return &v.sizeCache 4023 case 2: 4024 return &v.unknownFields 4025 default: 4026 return nil 4027 } 4028 } 4029 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4030 switch v := v.(*TestCaseResult); i { 4031 case 0: 4032 return &v.state 4033 case 1: 4034 return &v.sizeCache 4035 case 2: 4036 return &v.unknownFields 4037 default: 4038 return nil 4039 } 4040 } 4041 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4042 switch v := v.(*TestConfig); i { 4043 case 0: 4044 return &v.state 4045 case 1: 4046 return &v.sizeCache 4047 case 2: 4048 return &v.unknownFields 4049 default: 4050 return nil 4051 } 4052 } 4053 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4054 switch v := v.(*ConversationTurn); i { 4055 case 0: 4056 return &v.state 4057 case 1: 4058 return &v.sizeCache 4059 case 2: 4060 return &v.unknownFields 4061 default: 4062 return nil 4063 } 4064 } 4065 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4066 switch v := v.(*TestRunDifference); i { 4067 case 0: 4068 return &v.state 4069 case 1: 4070 return &v.sizeCache 4071 case 2: 4072 return &v.unknownFields 4073 default: 4074 return nil 4075 } 4076 } 4077 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4078 switch v := v.(*TransitionCoverage); i { 4079 case 0: 4080 return &v.state 4081 case 1: 4082 return &v.sizeCache 4083 case 2: 4084 return &v.unknownFields 4085 default: 4086 return nil 4087 } 4088 } 4089 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4090 switch v := v.(*TransitionRouteGroupCoverage); i { 4091 case 0: 4092 return &v.state 4093 case 1: 4094 return &v.sizeCache 4095 case 2: 4096 return &v.unknownFields 4097 default: 4098 return nil 4099 } 4100 } 4101 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4102 switch v := v.(*IntentCoverage); i { 4103 case 0: 4104 return &v.state 4105 case 1: 4106 return &v.sizeCache 4107 case 2: 4108 return &v.unknownFields 4109 default: 4110 return nil 4111 } 4112 } 4113 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4114 switch v := v.(*CalculateCoverageRequest); i { 4115 case 0: 4116 return &v.state 4117 case 1: 4118 return &v.sizeCache 4119 case 2: 4120 return &v.unknownFields 4121 default: 4122 return nil 4123 } 4124 } 4125 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4126 switch v := v.(*CalculateCoverageResponse); i { 4127 case 0: 4128 return &v.state 4129 case 1: 4130 return &v.sizeCache 4131 case 2: 4132 return &v.unknownFields 4133 default: 4134 return nil 4135 } 4136 } 4137 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4138 switch v := v.(*ListTestCasesRequest); i { 4139 case 0: 4140 return &v.state 4141 case 1: 4142 return &v.sizeCache 4143 case 2: 4144 return &v.unknownFields 4145 default: 4146 return nil 4147 } 4148 } 4149 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4150 switch v := v.(*ListTestCasesResponse); i { 4151 case 0: 4152 return &v.state 4153 case 1: 4154 return &v.sizeCache 4155 case 2: 4156 return &v.unknownFields 4157 default: 4158 return nil 4159 } 4160 } 4161 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4162 switch v := v.(*BatchDeleteTestCasesRequest); i { 4163 case 0: 4164 return &v.state 4165 case 1: 4166 return &v.sizeCache 4167 case 2: 4168 return &v.unknownFields 4169 default: 4170 return nil 4171 } 4172 } 4173 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4174 switch v := v.(*CreateTestCaseRequest); i { 4175 case 0: 4176 return &v.state 4177 case 1: 4178 return &v.sizeCache 4179 case 2: 4180 return &v.unknownFields 4181 default: 4182 return nil 4183 } 4184 } 4185 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4186 switch v := v.(*UpdateTestCaseRequest); i { 4187 case 0: 4188 return &v.state 4189 case 1: 4190 return &v.sizeCache 4191 case 2: 4192 return &v.unknownFields 4193 default: 4194 return nil 4195 } 4196 } 4197 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4198 switch v := v.(*GetTestCaseRequest); i { 4199 case 0: 4200 return &v.state 4201 case 1: 4202 return &v.sizeCache 4203 case 2: 4204 return &v.unknownFields 4205 default: 4206 return nil 4207 } 4208 } 4209 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4210 switch v := v.(*RunTestCaseRequest); i { 4211 case 0: 4212 return &v.state 4213 case 1: 4214 return &v.sizeCache 4215 case 2: 4216 return &v.unknownFields 4217 default: 4218 return nil 4219 } 4220 } 4221 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4222 switch v := v.(*RunTestCaseResponse); i { 4223 case 0: 4224 return &v.state 4225 case 1: 4226 return &v.sizeCache 4227 case 2: 4228 return &v.unknownFields 4229 default: 4230 return nil 4231 } 4232 } 4233 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4234 switch v := v.(*RunTestCaseMetadata); i { 4235 case 0: 4236 return &v.state 4237 case 1: 4238 return &v.sizeCache 4239 case 2: 4240 return &v.unknownFields 4241 default: 4242 return nil 4243 } 4244 } 4245 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4246 switch v := v.(*BatchRunTestCasesRequest); i { 4247 case 0: 4248 return &v.state 4249 case 1: 4250 return &v.sizeCache 4251 case 2: 4252 return &v.unknownFields 4253 default: 4254 return nil 4255 } 4256 } 4257 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4258 switch v := v.(*BatchRunTestCasesResponse); i { 4259 case 0: 4260 return &v.state 4261 case 1: 4262 return &v.sizeCache 4263 case 2: 4264 return &v.unknownFields 4265 default: 4266 return nil 4267 } 4268 } 4269 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4270 switch v := v.(*BatchRunTestCasesMetadata); i { 4271 case 0: 4272 return &v.state 4273 case 1: 4274 return &v.sizeCache 4275 case 2: 4276 return &v.unknownFields 4277 default: 4278 return nil 4279 } 4280 } 4281 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4282 switch v := v.(*TestError); i { 4283 case 0: 4284 return &v.state 4285 case 1: 4286 return &v.sizeCache 4287 case 2: 4288 return &v.unknownFields 4289 default: 4290 return nil 4291 } 4292 } 4293 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4294 switch v := v.(*ImportTestCasesRequest); i { 4295 case 0: 4296 return &v.state 4297 case 1: 4298 return &v.sizeCache 4299 case 2: 4300 return &v.unknownFields 4301 default: 4302 return nil 4303 } 4304 } 4305 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 4306 switch v := v.(*ImportTestCasesResponse); i { 4307 case 0: 4308 return &v.state 4309 case 1: 4310 return &v.sizeCache 4311 case 2: 4312 return &v.unknownFields 4313 default: 4314 return nil 4315 } 4316 } 4317 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 4318 switch v := v.(*ImportTestCasesMetadata); i { 4319 case 0: 4320 return &v.state 4321 case 1: 4322 return &v.sizeCache 4323 case 2: 4324 return &v.unknownFields 4325 default: 4326 return nil 4327 } 4328 } 4329 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 4330 switch v := v.(*TestCaseError); i { 4331 case 0: 4332 return &v.state 4333 case 1: 4334 return &v.sizeCache 4335 case 2: 4336 return &v.unknownFields 4337 default: 4338 return nil 4339 } 4340 } 4341 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 4342 switch v := v.(*ExportTestCasesRequest); i { 4343 case 0: 4344 return &v.state 4345 case 1: 4346 return &v.sizeCache 4347 case 2: 4348 return &v.unknownFields 4349 default: 4350 return nil 4351 } 4352 } 4353 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4354 switch v := v.(*ExportTestCasesResponse); i { 4355 case 0: 4356 return &v.state 4357 case 1: 4358 return &v.sizeCache 4359 case 2: 4360 return &v.unknownFields 4361 default: 4362 return nil 4363 } 4364 } 4365 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 4366 switch v := v.(*ExportTestCasesMetadata); i { 4367 case 0: 4368 return &v.state 4369 case 1: 4370 return &v.sizeCache 4371 case 2: 4372 return &v.unknownFields 4373 default: 4374 return nil 4375 } 4376 } 4377 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4378 switch v := v.(*ListTestCaseResultsRequest); i { 4379 case 0: 4380 return &v.state 4381 case 1: 4382 return &v.sizeCache 4383 case 2: 4384 return &v.unknownFields 4385 default: 4386 return nil 4387 } 4388 } 4389 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 4390 switch v := v.(*ListTestCaseResultsResponse); i { 4391 case 0: 4392 return &v.state 4393 case 1: 4394 return &v.sizeCache 4395 case 2: 4396 return &v.unknownFields 4397 default: 4398 return nil 4399 } 4400 } 4401 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 4402 switch v := v.(*GetTestCaseResultRequest); i { 4403 case 0: 4404 return &v.state 4405 case 1: 4406 return &v.sizeCache 4407 case 2: 4408 return &v.unknownFields 4409 default: 4410 return nil 4411 } 4412 } 4413 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 4414 switch v := v.(*ConversationTurn_UserInput); i { 4415 case 0: 4416 return &v.state 4417 case 1: 4418 return &v.sizeCache 4419 case 2: 4420 return &v.unknownFields 4421 default: 4422 return nil 4423 } 4424 } 4425 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 4426 switch v := v.(*ConversationTurn_VirtualAgentOutput); i { 4427 case 0: 4428 return &v.state 4429 case 1: 4430 return &v.sizeCache 4431 case 2: 4432 return &v.unknownFields 4433 default: 4434 return nil 4435 } 4436 } 4437 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4438 switch v := v.(*TransitionCoverage_TransitionNode); i { 4439 case 0: 4440 return &v.state 4441 case 1: 4442 return &v.sizeCache 4443 case 2: 4444 return &v.unknownFields 4445 default: 4446 return nil 4447 } 4448 } 4449 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 4450 switch v := v.(*TransitionCoverage_Transition); i { 4451 case 0: 4452 return &v.state 4453 case 1: 4454 return &v.sizeCache 4455 case 2: 4456 return &v.unknownFields 4457 default: 4458 return nil 4459 } 4460 } 4461 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 4462 switch v := v.(*TransitionRouteGroupCoverage_Coverage); i { 4463 case 0: 4464 return &v.state 4465 case 1: 4466 return &v.sizeCache 4467 case 2: 4468 return &v.unknownFields 4469 default: 4470 return nil 4471 } 4472 } 4473 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 4474 switch v := v.(*TransitionRouteGroupCoverage_Coverage_Transition); i { 4475 case 0: 4476 return &v.state 4477 case 1: 4478 return &v.sizeCache 4479 case 2: 4480 return &v.unknownFields 4481 default: 4482 return nil 4483 } 4484 } 4485 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 4486 switch v := v.(*IntentCoverage_Intent); i { 4487 case 0: 4488 return &v.state 4489 case 1: 4490 return &v.sizeCache 4491 case 2: 4492 return &v.unknownFields 4493 default: 4494 return nil 4495 } 4496 } 4497 } 4498 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[9].OneofWrappers = []interface{}{ 4499 (*CalculateCoverageResponse_IntentCoverage)(nil), 4500 (*CalculateCoverageResponse_TransitionCoverage)(nil), 4501 (*CalculateCoverageResponse_RouteGroupCoverage)(nil), 4502 } 4503 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[23].OneofWrappers = []interface{}{ 4504 (*ImportTestCasesRequest_GcsUri)(nil), 4505 (*ImportTestCasesRequest_Content)(nil), 4506 } 4507 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[27].OneofWrappers = []interface{}{ 4508 (*ExportTestCasesRequest_GcsUri)(nil), 4509 } 4510 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[28].OneofWrappers = []interface{}{ 4511 (*ExportTestCasesResponse_GcsUri)(nil), 4512 (*ExportTestCasesResponse_Content)(nil), 4513 } 4514 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[35].OneofWrappers = []interface{}{ 4515 (*TransitionCoverage_TransitionNode_Page)(nil), 4516 (*TransitionCoverage_TransitionNode_Flow)(nil), 4517 } 4518 file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes[36].OneofWrappers = []interface{}{ 4519 (*TransitionCoverage_Transition_TransitionRoute)(nil), 4520 (*TransitionCoverage_Transition_EventHandler)(nil), 4521 } 4522 type x struct{} 4523 out := protoimpl.TypeBuilder{ 4524 File: protoimpl.DescBuilder{ 4525 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4526 RawDescriptor: file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDesc, 4527 NumEnums: 5, 4528 NumMessages: 40, 4529 NumExtensions: 0, 4530 NumServices: 1, 4531 }, 4532 GoTypes: file_google_cloud_dialogflow_cx_v3_test_case_proto_goTypes, 4533 DependencyIndexes: file_google_cloud_dialogflow_cx_v3_test_case_proto_depIdxs, 4534 EnumInfos: file_google_cloud_dialogflow_cx_v3_test_case_proto_enumTypes, 4535 MessageInfos: file_google_cloud_dialogflow_cx_v3_test_case_proto_msgTypes, 4536 }.Build() 4537 File_google_cloud_dialogflow_cx_v3_test_case_proto = out.File 4538 file_google_cloud_dialogflow_cx_v3_test_case_proto_rawDesc = nil 4539 file_google_cloud_dialogflow_cx_v3_test_case_proto_goTypes = nil 4540 file_google_cloud_dialogflow_cx_v3_test_case_proto_depIdxs = nil 4541} 4542 4543// Reference imports to suppress errors if they are not otherwise used. 4544var _ context.Context 4545var _ grpc.ClientConnInterface 4546 4547// This is a compile-time assertion to ensure that this generated file 4548// is compatible with the grpc package it is being compiled against. 4549const _ = grpc.SupportPackageIsVersion6 4550 4551// TestCasesClient is the client API for TestCases service. 4552// 4553// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 4554type TestCasesClient interface { 4555 // Fetches a list of test cases for a given agent. 4556 ListTestCases(ctx context.Context, in *ListTestCasesRequest, opts ...grpc.CallOption) (*ListTestCasesResponse, error) 4557 // Batch deletes test cases. 4558 BatchDeleteTestCases(ctx context.Context, in *BatchDeleteTestCasesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 4559 // Gets a test case. 4560 GetTestCase(ctx context.Context, in *GetTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) 4561 // Creates a test case for the given agent. 4562 CreateTestCase(ctx context.Context, in *CreateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) 4563 // Updates the specified test case. 4564 UpdateTestCase(ctx context.Context, in *UpdateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) 4565 // Kicks off a test case run. 4566 // This method is a [long-running 4567 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4568 // The returned `Operation` type has the following method-specific fields: 4569 // 4570 // - `metadata`: [RunTestCaseMetadata][google.cloud.dialogflow.cx.v3.RunTestCaseMetadata] 4571 // - `response`: [RunTestCaseResponse][google.cloud.dialogflow.cx.v3.RunTestCaseResponse] 4572 RunTestCase(ctx context.Context, in *RunTestCaseRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4573 // Kicks off a batch run of test cases. 4574 BatchRunTestCases(ctx context.Context, in *BatchRunTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4575 // Calculates the test coverage for an agent. 4576 CalculateCoverage(ctx context.Context, in *CalculateCoverageRequest, opts ...grpc.CallOption) (*CalculateCoverageResponse, error) 4577 // Imports the test cases from a Cloud Storage bucket or a local file. It 4578 // always creates new test cases and won't overwite any existing ones. The 4579 // provided ID in the imported test case is neglected. 4580 ImportTestCases(ctx context.Context, in *ImportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4581 // Exports the test cases under the agent to a Cloud Storage bucket or a local 4582 // file. Filter can be applied to export a subset of test cases. 4583 ExportTestCases(ctx context.Context, in *ExportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4584 // Fetches a list of results for a given test case. 4585 ListTestCaseResults(ctx context.Context, in *ListTestCaseResultsRequest, opts ...grpc.CallOption) (*ListTestCaseResultsResponse, error) 4586 // Gets a test case result. 4587 GetTestCaseResult(ctx context.Context, in *GetTestCaseResultRequest, opts ...grpc.CallOption) (*TestCaseResult, error) 4588} 4589 4590type testCasesClient struct { 4591 cc grpc.ClientConnInterface 4592} 4593 4594func NewTestCasesClient(cc grpc.ClientConnInterface) TestCasesClient { 4595 return &testCasesClient{cc} 4596} 4597 4598func (c *testCasesClient) ListTestCases(ctx context.Context, in *ListTestCasesRequest, opts ...grpc.CallOption) (*ListTestCasesResponse, error) { 4599 out := new(ListTestCasesResponse) 4600 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/ListTestCases", in, out, opts...) 4601 if err != nil { 4602 return nil, err 4603 } 4604 return out, nil 4605} 4606 4607func (c *testCasesClient) BatchDeleteTestCases(ctx context.Context, in *BatchDeleteTestCasesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 4608 out := new(emptypb.Empty) 4609 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/BatchDeleteTestCases", in, out, opts...) 4610 if err != nil { 4611 return nil, err 4612 } 4613 return out, nil 4614} 4615 4616func (c *testCasesClient) GetTestCase(ctx context.Context, in *GetTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { 4617 out := new(TestCase) 4618 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/GetTestCase", in, out, opts...) 4619 if err != nil { 4620 return nil, err 4621 } 4622 return out, nil 4623} 4624 4625func (c *testCasesClient) CreateTestCase(ctx context.Context, in *CreateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { 4626 out := new(TestCase) 4627 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/CreateTestCase", in, out, opts...) 4628 if err != nil { 4629 return nil, err 4630 } 4631 return out, nil 4632} 4633 4634func (c *testCasesClient) UpdateTestCase(ctx context.Context, in *UpdateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { 4635 out := new(TestCase) 4636 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/UpdateTestCase", in, out, opts...) 4637 if err != nil { 4638 return nil, err 4639 } 4640 return out, nil 4641} 4642 4643func (c *testCasesClient) RunTestCase(ctx context.Context, in *RunTestCaseRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4644 out := new(longrunning.Operation) 4645 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/RunTestCase", in, out, opts...) 4646 if err != nil { 4647 return nil, err 4648 } 4649 return out, nil 4650} 4651 4652func (c *testCasesClient) BatchRunTestCases(ctx context.Context, in *BatchRunTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4653 out := new(longrunning.Operation) 4654 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/BatchRunTestCases", in, out, opts...) 4655 if err != nil { 4656 return nil, err 4657 } 4658 return out, nil 4659} 4660 4661func (c *testCasesClient) CalculateCoverage(ctx context.Context, in *CalculateCoverageRequest, opts ...grpc.CallOption) (*CalculateCoverageResponse, error) { 4662 out := new(CalculateCoverageResponse) 4663 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/CalculateCoverage", in, out, opts...) 4664 if err != nil { 4665 return nil, err 4666 } 4667 return out, nil 4668} 4669 4670func (c *testCasesClient) ImportTestCases(ctx context.Context, in *ImportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4671 out := new(longrunning.Operation) 4672 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/ImportTestCases", in, out, opts...) 4673 if err != nil { 4674 return nil, err 4675 } 4676 return out, nil 4677} 4678 4679func (c *testCasesClient) ExportTestCases(ctx context.Context, in *ExportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4680 out := new(longrunning.Operation) 4681 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/ExportTestCases", in, out, opts...) 4682 if err != nil { 4683 return nil, err 4684 } 4685 return out, nil 4686} 4687 4688func (c *testCasesClient) ListTestCaseResults(ctx context.Context, in *ListTestCaseResultsRequest, opts ...grpc.CallOption) (*ListTestCaseResultsResponse, error) { 4689 out := new(ListTestCaseResultsResponse) 4690 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/ListTestCaseResults", in, out, opts...) 4691 if err != nil { 4692 return nil, err 4693 } 4694 return out, nil 4695} 4696 4697func (c *testCasesClient) GetTestCaseResult(ctx context.Context, in *GetTestCaseResultRequest, opts ...grpc.CallOption) (*TestCaseResult, error) { 4698 out := new(TestCaseResult) 4699 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.TestCases/GetTestCaseResult", in, out, opts...) 4700 if err != nil { 4701 return nil, err 4702 } 4703 return out, nil 4704} 4705 4706// TestCasesServer is the server API for TestCases service. 4707type TestCasesServer interface { 4708 // Fetches a list of test cases for a given agent. 4709 ListTestCases(context.Context, *ListTestCasesRequest) (*ListTestCasesResponse, error) 4710 // Batch deletes test cases. 4711 BatchDeleteTestCases(context.Context, *BatchDeleteTestCasesRequest) (*emptypb.Empty, error) 4712 // Gets a test case. 4713 GetTestCase(context.Context, *GetTestCaseRequest) (*TestCase, error) 4714 // Creates a test case for the given agent. 4715 CreateTestCase(context.Context, *CreateTestCaseRequest) (*TestCase, error) 4716 // Updates the specified test case. 4717 UpdateTestCase(context.Context, *UpdateTestCaseRequest) (*TestCase, error) 4718 // Kicks off a test case run. 4719 // This method is a [long-running 4720 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4721 // The returned `Operation` type has the following method-specific fields: 4722 // 4723 // - `metadata`: [RunTestCaseMetadata][google.cloud.dialogflow.cx.v3.RunTestCaseMetadata] 4724 // - `response`: [RunTestCaseResponse][google.cloud.dialogflow.cx.v3.RunTestCaseResponse] 4725 RunTestCase(context.Context, *RunTestCaseRequest) (*longrunning.Operation, error) 4726 // Kicks off a batch run of test cases. 4727 BatchRunTestCases(context.Context, *BatchRunTestCasesRequest) (*longrunning.Operation, error) 4728 // Calculates the test coverage for an agent. 4729 CalculateCoverage(context.Context, *CalculateCoverageRequest) (*CalculateCoverageResponse, error) 4730 // Imports the test cases from a Cloud Storage bucket or a local file. It 4731 // always creates new test cases and won't overwite any existing ones. The 4732 // provided ID in the imported test case is neglected. 4733 ImportTestCases(context.Context, *ImportTestCasesRequest) (*longrunning.Operation, error) 4734 // Exports the test cases under the agent to a Cloud Storage bucket or a local 4735 // file. Filter can be applied to export a subset of test cases. 4736 ExportTestCases(context.Context, *ExportTestCasesRequest) (*longrunning.Operation, error) 4737 // Fetches a list of results for a given test case. 4738 ListTestCaseResults(context.Context, *ListTestCaseResultsRequest) (*ListTestCaseResultsResponse, error) 4739 // Gets a test case result. 4740 GetTestCaseResult(context.Context, *GetTestCaseResultRequest) (*TestCaseResult, error) 4741} 4742 4743// UnimplementedTestCasesServer can be embedded to have forward compatible implementations. 4744type UnimplementedTestCasesServer struct { 4745} 4746 4747func (*UnimplementedTestCasesServer) ListTestCases(context.Context, *ListTestCasesRequest) (*ListTestCasesResponse, error) { 4748 return nil, status1.Errorf(codes.Unimplemented, "method ListTestCases not implemented") 4749} 4750func (*UnimplementedTestCasesServer) BatchDeleteTestCases(context.Context, *BatchDeleteTestCasesRequest) (*emptypb.Empty, error) { 4751 return nil, status1.Errorf(codes.Unimplemented, "method BatchDeleteTestCases not implemented") 4752} 4753func (*UnimplementedTestCasesServer) GetTestCase(context.Context, *GetTestCaseRequest) (*TestCase, error) { 4754 return nil, status1.Errorf(codes.Unimplemented, "method GetTestCase not implemented") 4755} 4756func (*UnimplementedTestCasesServer) CreateTestCase(context.Context, *CreateTestCaseRequest) (*TestCase, error) { 4757 return nil, status1.Errorf(codes.Unimplemented, "method CreateTestCase not implemented") 4758} 4759func (*UnimplementedTestCasesServer) UpdateTestCase(context.Context, *UpdateTestCaseRequest) (*TestCase, error) { 4760 return nil, status1.Errorf(codes.Unimplemented, "method UpdateTestCase not implemented") 4761} 4762func (*UnimplementedTestCasesServer) RunTestCase(context.Context, *RunTestCaseRequest) (*longrunning.Operation, error) { 4763 return nil, status1.Errorf(codes.Unimplemented, "method RunTestCase not implemented") 4764} 4765func (*UnimplementedTestCasesServer) BatchRunTestCases(context.Context, *BatchRunTestCasesRequest) (*longrunning.Operation, error) { 4766 return nil, status1.Errorf(codes.Unimplemented, "method BatchRunTestCases not implemented") 4767} 4768func (*UnimplementedTestCasesServer) CalculateCoverage(context.Context, *CalculateCoverageRequest) (*CalculateCoverageResponse, error) { 4769 return nil, status1.Errorf(codes.Unimplemented, "method CalculateCoverage not implemented") 4770} 4771func (*UnimplementedTestCasesServer) ImportTestCases(context.Context, *ImportTestCasesRequest) (*longrunning.Operation, error) { 4772 return nil, status1.Errorf(codes.Unimplemented, "method ImportTestCases not implemented") 4773} 4774func (*UnimplementedTestCasesServer) ExportTestCases(context.Context, *ExportTestCasesRequest) (*longrunning.Operation, error) { 4775 return nil, status1.Errorf(codes.Unimplemented, "method ExportTestCases not implemented") 4776} 4777func (*UnimplementedTestCasesServer) ListTestCaseResults(context.Context, *ListTestCaseResultsRequest) (*ListTestCaseResultsResponse, error) { 4778 return nil, status1.Errorf(codes.Unimplemented, "method ListTestCaseResults not implemented") 4779} 4780func (*UnimplementedTestCasesServer) GetTestCaseResult(context.Context, *GetTestCaseResultRequest) (*TestCaseResult, error) { 4781 return nil, status1.Errorf(codes.Unimplemented, "method GetTestCaseResult not implemented") 4782} 4783 4784func RegisterTestCasesServer(s *grpc.Server, srv TestCasesServer) { 4785 s.RegisterService(&_TestCases_serviceDesc, srv) 4786} 4787 4788func _TestCases_ListTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4789 in := new(ListTestCasesRequest) 4790 if err := dec(in); err != nil { 4791 return nil, err 4792 } 4793 if interceptor == nil { 4794 return srv.(TestCasesServer).ListTestCases(ctx, in) 4795 } 4796 info := &grpc.UnaryServerInfo{ 4797 Server: srv, 4798 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/ListTestCases", 4799 } 4800 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4801 return srv.(TestCasesServer).ListTestCases(ctx, req.(*ListTestCasesRequest)) 4802 } 4803 return interceptor(ctx, in, info, handler) 4804} 4805 4806func _TestCases_BatchDeleteTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4807 in := new(BatchDeleteTestCasesRequest) 4808 if err := dec(in); err != nil { 4809 return nil, err 4810 } 4811 if interceptor == nil { 4812 return srv.(TestCasesServer).BatchDeleteTestCases(ctx, in) 4813 } 4814 info := &grpc.UnaryServerInfo{ 4815 Server: srv, 4816 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/BatchDeleteTestCases", 4817 } 4818 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4819 return srv.(TestCasesServer).BatchDeleteTestCases(ctx, req.(*BatchDeleteTestCasesRequest)) 4820 } 4821 return interceptor(ctx, in, info, handler) 4822} 4823 4824func _TestCases_GetTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4825 in := new(GetTestCaseRequest) 4826 if err := dec(in); err != nil { 4827 return nil, err 4828 } 4829 if interceptor == nil { 4830 return srv.(TestCasesServer).GetTestCase(ctx, in) 4831 } 4832 info := &grpc.UnaryServerInfo{ 4833 Server: srv, 4834 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/GetTestCase", 4835 } 4836 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4837 return srv.(TestCasesServer).GetTestCase(ctx, req.(*GetTestCaseRequest)) 4838 } 4839 return interceptor(ctx, in, info, handler) 4840} 4841 4842func _TestCases_CreateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4843 in := new(CreateTestCaseRequest) 4844 if err := dec(in); err != nil { 4845 return nil, err 4846 } 4847 if interceptor == nil { 4848 return srv.(TestCasesServer).CreateTestCase(ctx, in) 4849 } 4850 info := &grpc.UnaryServerInfo{ 4851 Server: srv, 4852 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/CreateTestCase", 4853 } 4854 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4855 return srv.(TestCasesServer).CreateTestCase(ctx, req.(*CreateTestCaseRequest)) 4856 } 4857 return interceptor(ctx, in, info, handler) 4858} 4859 4860func _TestCases_UpdateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4861 in := new(UpdateTestCaseRequest) 4862 if err := dec(in); err != nil { 4863 return nil, err 4864 } 4865 if interceptor == nil { 4866 return srv.(TestCasesServer).UpdateTestCase(ctx, in) 4867 } 4868 info := &grpc.UnaryServerInfo{ 4869 Server: srv, 4870 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/UpdateTestCase", 4871 } 4872 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4873 return srv.(TestCasesServer).UpdateTestCase(ctx, req.(*UpdateTestCaseRequest)) 4874 } 4875 return interceptor(ctx, in, info, handler) 4876} 4877 4878func _TestCases_RunTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4879 in := new(RunTestCaseRequest) 4880 if err := dec(in); err != nil { 4881 return nil, err 4882 } 4883 if interceptor == nil { 4884 return srv.(TestCasesServer).RunTestCase(ctx, in) 4885 } 4886 info := &grpc.UnaryServerInfo{ 4887 Server: srv, 4888 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/RunTestCase", 4889 } 4890 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4891 return srv.(TestCasesServer).RunTestCase(ctx, req.(*RunTestCaseRequest)) 4892 } 4893 return interceptor(ctx, in, info, handler) 4894} 4895 4896func _TestCases_BatchRunTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4897 in := new(BatchRunTestCasesRequest) 4898 if err := dec(in); err != nil { 4899 return nil, err 4900 } 4901 if interceptor == nil { 4902 return srv.(TestCasesServer).BatchRunTestCases(ctx, in) 4903 } 4904 info := &grpc.UnaryServerInfo{ 4905 Server: srv, 4906 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/BatchRunTestCases", 4907 } 4908 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4909 return srv.(TestCasesServer).BatchRunTestCases(ctx, req.(*BatchRunTestCasesRequest)) 4910 } 4911 return interceptor(ctx, in, info, handler) 4912} 4913 4914func _TestCases_CalculateCoverage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4915 in := new(CalculateCoverageRequest) 4916 if err := dec(in); err != nil { 4917 return nil, err 4918 } 4919 if interceptor == nil { 4920 return srv.(TestCasesServer).CalculateCoverage(ctx, in) 4921 } 4922 info := &grpc.UnaryServerInfo{ 4923 Server: srv, 4924 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/CalculateCoverage", 4925 } 4926 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4927 return srv.(TestCasesServer).CalculateCoverage(ctx, req.(*CalculateCoverageRequest)) 4928 } 4929 return interceptor(ctx, in, info, handler) 4930} 4931 4932func _TestCases_ImportTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4933 in := new(ImportTestCasesRequest) 4934 if err := dec(in); err != nil { 4935 return nil, err 4936 } 4937 if interceptor == nil { 4938 return srv.(TestCasesServer).ImportTestCases(ctx, in) 4939 } 4940 info := &grpc.UnaryServerInfo{ 4941 Server: srv, 4942 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/ImportTestCases", 4943 } 4944 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4945 return srv.(TestCasesServer).ImportTestCases(ctx, req.(*ImportTestCasesRequest)) 4946 } 4947 return interceptor(ctx, in, info, handler) 4948} 4949 4950func _TestCases_ExportTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4951 in := new(ExportTestCasesRequest) 4952 if err := dec(in); err != nil { 4953 return nil, err 4954 } 4955 if interceptor == nil { 4956 return srv.(TestCasesServer).ExportTestCases(ctx, in) 4957 } 4958 info := &grpc.UnaryServerInfo{ 4959 Server: srv, 4960 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/ExportTestCases", 4961 } 4962 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4963 return srv.(TestCasesServer).ExportTestCases(ctx, req.(*ExportTestCasesRequest)) 4964 } 4965 return interceptor(ctx, in, info, handler) 4966} 4967 4968func _TestCases_ListTestCaseResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4969 in := new(ListTestCaseResultsRequest) 4970 if err := dec(in); err != nil { 4971 return nil, err 4972 } 4973 if interceptor == nil { 4974 return srv.(TestCasesServer).ListTestCaseResults(ctx, in) 4975 } 4976 info := &grpc.UnaryServerInfo{ 4977 Server: srv, 4978 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/ListTestCaseResults", 4979 } 4980 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4981 return srv.(TestCasesServer).ListTestCaseResults(ctx, req.(*ListTestCaseResultsRequest)) 4982 } 4983 return interceptor(ctx, in, info, handler) 4984} 4985 4986func _TestCases_GetTestCaseResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4987 in := new(GetTestCaseResultRequest) 4988 if err := dec(in); err != nil { 4989 return nil, err 4990 } 4991 if interceptor == nil { 4992 return srv.(TestCasesServer).GetTestCaseResult(ctx, in) 4993 } 4994 info := &grpc.UnaryServerInfo{ 4995 Server: srv, 4996 FullMethod: "/google.cloud.dialogflow.cx.v3.TestCases/GetTestCaseResult", 4997 } 4998 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4999 return srv.(TestCasesServer).GetTestCaseResult(ctx, req.(*GetTestCaseResultRequest)) 5000 } 5001 return interceptor(ctx, in, info, handler) 5002} 5003 5004var _TestCases_serviceDesc = grpc.ServiceDesc{ 5005 ServiceName: "google.cloud.dialogflow.cx.v3.TestCases", 5006 HandlerType: (*TestCasesServer)(nil), 5007 Methods: []grpc.MethodDesc{ 5008 { 5009 MethodName: "ListTestCases", 5010 Handler: _TestCases_ListTestCases_Handler, 5011 }, 5012 { 5013 MethodName: "BatchDeleteTestCases", 5014 Handler: _TestCases_BatchDeleteTestCases_Handler, 5015 }, 5016 { 5017 MethodName: "GetTestCase", 5018 Handler: _TestCases_GetTestCase_Handler, 5019 }, 5020 { 5021 MethodName: "CreateTestCase", 5022 Handler: _TestCases_CreateTestCase_Handler, 5023 }, 5024 { 5025 MethodName: "UpdateTestCase", 5026 Handler: _TestCases_UpdateTestCase_Handler, 5027 }, 5028 { 5029 MethodName: "RunTestCase", 5030 Handler: _TestCases_RunTestCase_Handler, 5031 }, 5032 { 5033 MethodName: "BatchRunTestCases", 5034 Handler: _TestCases_BatchRunTestCases_Handler, 5035 }, 5036 { 5037 MethodName: "CalculateCoverage", 5038 Handler: _TestCases_CalculateCoverage_Handler, 5039 }, 5040 { 5041 MethodName: "ImportTestCases", 5042 Handler: _TestCases_ImportTestCases_Handler, 5043 }, 5044 { 5045 MethodName: "ExportTestCases", 5046 Handler: _TestCases_ExportTestCases_Handler, 5047 }, 5048 { 5049 MethodName: "ListTestCaseResults", 5050 Handler: _TestCases_ListTestCaseResults_Handler, 5051 }, 5052 { 5053 MethodName: "GetTestCaseResult", 5054 Handler: _TestCases_GetTestCaseResult_Handler, 5055 }, 5056 }, 5057 Streams: []grpc.StreamDesc{}, 5058 Metadata: "google/cloud/dialogflow/cx/v3/test_case.proto", 5059} 5060