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/v3beta1/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_v3beta1_test_case_proto_enumTypes[0].Descriptor() 87} 88 89func (TestResult) Type() protoreflect.EnumType { 90 return &file_google_cloud_dialogflow_cx_v3beta1_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_v3beta1_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_v3beta1_test_case_proto_enumTypes[1].Descriptor() 148} 149 150func (TestRunDifference_DiffType) Type() protoreflect.EnumType { 151 return &file_google_cloud_dialogflow_cx_v3beta1_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_v3beta1_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_v3beta1_test_case_proto_enumTypes[2].Descriptor() 205} 206 207func (CalculateCoverageRequest_CoverageType) Type() protoreflect.EnumType { 208 return &file_google_cloud_dialogflow_cx_v3beta1_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_v3beta1_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_v3beta1_test_case_proto_enumTypes[3].Descriptor() 260} 261 262func (ListTestCasesRequest_TestCaseView) Type() protoreflect.EnumType { 263 return &file_google_cloud_dialogflow_cx_v3beta1_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_v3beta1_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_v3beta1_test_case_proto_enumTypes[4].Descriptor() 313} 314 315func (ExportTestCasesRequest_DataFormat) Type() protoreflect.EnumType { 316 return &file_google_cloud_dialogflow_cx_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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.v3beta1.TestCase.creation_time] and 1331 // [`lastTestResult`][google.cloud.dialogflow.cx.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_test_case_proto_rawDescGZIP(), []int{18} 1580} 1581 1582// The request message for [TestCases.BatchRunTestCases][google.cloud.dialogflow.cx.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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_v3beta1_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_v3beta1_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_v3beta1_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.v3beta1.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.v3beta1.TestCases.ExportTestCases] long running 2276// operation. 2277// This message currently has no fields. 2278type ExportTestCasesMetadata struct { 2279 state protoimpl.MessageState 2280 sizeCache protoimpl.SizeCache 2281 unknownFields protoimpl.UnknownFields 2282} 2283 2284func (x *ExportTestCasesMetadata) Reset() { 2285 *x = ExportTestCasesMetadata{} 2286 if protoimpl.UnsafeEnabled { 2287 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[29] 2288 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2289 ms.StoreMessageInfo(mi) 2290 } 2291} 2292 2293func (x *ExportTestCasesMetadata) String() string { 2294 return protoimpl.X.MessageStringOf(x) 2295} 2296 2297func (*ExportTestCasesMetadata) ProtoMessage() {} 2298 2299func (x *ExportTestCasesMetadata) ProtoReflect() protoreflect.Message { 2300 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[29] 2301 if protoimpl.UnsafeEnabled && x != nil { 2302 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2303 if ms.LoadMessageInfo() == nil { 2304 ms.StoreMessageInfo(mi) 2305 } 2306 return ms 2307 } 2308 return mi.MessageOf(x) 2309} 2310 2311// Deprecated: Use ExportTestCasesMetadata.ProtoReflect.Descriptor instead. 2312func (*ExportTestCasesMetadata) Descriptor() ([]byte, []int) { 2313 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{29} 2314} 2315 2316// The request message for [TestCases.ListTestCaseResults][google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults]. 2317type ListTestCaseResultsRequest struct { 2318 state protoimpl.MessageState 2319 sizeCache protoimpl.SizeCache 2320 unknownFields protoimpl.UnknownFields 2321 2322 // Required. The test case to list results for. 2323 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/ 2324 // testCases/<TestCase ID>`. Specify a `-` as a wildcard for TestCase ID to 2325 // list results across multiple test cases. 2326 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2327 // The maximum number of items to return in a single page. By default 100 and 2328 // at most 1000. 2329 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2330 // The next_page_token value returned from a previous list request. 2331 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2332 // The filter expression used to filter test case results. See 2333 // [API Filtering](https://aip.dev/160). 2334 // 2335 // The expression is case insensitive. Only 'AND' is supported for logical 2336 // operators. The supported syntax is listed below in detail: 2337 // 2338 // <field> <operator> <value> [AND <field> <operator> <value>] ... 2339 // [AND latest] 2340 // 2341 // The supported fields and operators are: 2342 // field operator 2343 // `environment` `=`, `IN` (Use value `draft` for draft environment) 2344 // `test_time` `>`, `<` 2345 // 2346 // `latest` only returns the latest test result in all results for each test 2347 // case. 2348 // 2349 // Examples: 2350 // * "environment=draft AND latest" matches the latest test result for each 2351 // test case in the draft environment. 2352 // * "environment IN (e1,e2)" matches any test case results with an 2353 // environment resource name of either "e1" or "e2". 2354 // * "test_time > 1602540713" matches any test case results with test time 2355 // later than a unix timestamp in seconds 1602540713. 2356 Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` 2357} 2358 2359func (x *ListTestCaseResultsRequest) Reset() { 2360 *x = ListTestCaseResultsRequest{} 2361 if protoimpl.UnsafeEnabled { 2362 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[30] 2363 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2364 ms.StoreMessageInfo(mi) 2365 } 2366} 2367 2368func (x *ListTestCaseResultsRequest) String() string { 2369 return protoimpl.X.MessageStringOf(x) 2370} 2371 2372func (*ListTestCaseResultsRequest) ProtoMessage() {} 2373 2374func (x *ListTestCaseResultsRequest) ProtoReflect() protoreflect.Message { 2375 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[30] 2376 if protoimpl.UnsafeEnabled && x != nil { 2377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2378 if ms.LoadMessageInfo() == nil { 2379 ms.StoreMessageInfo(mi) 2380 } 2381 return ms 2382 } 2383 return mi.MessageOf(x) 2384} 2385 2386// Deprecated: Use ListTestCaseResultsRequest.ProtoReflect.Descriptor instead. 2387func (*ListTestCaseResultsRequest) Descriptor() ([]byte, []int) { 2388 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{30} 2389} 2390 2391func (x *ListTestCaseResultsRequest) GetParent() string { 2392 if x != nil { 2393 return x.Parent 2394 } 2395 return "" 2396} 2397 2398func (x *ListTestCaseResultsRequest) GetPageSize() int32 { 2399 if x != nil { 2400 return x.PageSize 2401 } 2402 return 0 2403} 2404 2405func (x *ListTestCaseResultsRequest) GetPageToken() string { 2406 if x != nil { 2407 return x.PageToken 2408 } 2409 return "" 2410} 2411 2412func (x *ListTestCaseResultsRequest) GetFilter() string { 2413 if x != nil { 2414 return x.Filter 2415 } 2416 return "" 2417} 2418 2419// The response message for [TestCases.ListTestCaseResults][google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults]. 2420type ListTestCaseResultsResponse struct { 2421 state protoimpl.MessageState 2422 sizeCache protoimpl.SizeCache 2423 unknownFields protoimpl.UnknownFields 2424 2425 // The list of test case results. 2426 TestCaseResults []*TestCaseResult `protobuf:"bytes,1,rep,name=test_case_results,json=testCaseResults,proto3" json:"test_case_results,omitempty"` 2427 // Token to retrieve the next page of results, or empty if there are no more 2428 // results in the list. 2429 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2430} 2431 2432func (x *ListTestCaseResultsResponse) Reset() { 2433 *x = ListTestCaseResultsResponse{} 2434 if protoimpl.UnsafeEnabled { 2435 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[31] 2436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2437 ms.StoreMessageInfo(mi) 2438 } 2439} 2440 2441func (x *ListTestCaseResultsResponse) String() string { 2442 return protoimpl.X.MessageStringOf(x) 2443} 2444 2445func (*ListTestCaseResultsResponse) ProtoMessage() {} 2446 2447func (x *ListTestCaseResultsResponse) ProtoReflect() protoreflect.Message { 2448 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[31] 2449 if protoimpl.UnsafeEnabled && x != nil { 2450 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2451 if ms.LoadMessageInfo() == nil { 2452 ms.StoreMessageInfo(mi) 2453 } 2454 return ms 2455 } 2456 return mi.MessageOf(x) 2457} 2458 2459// Deprecated: Use ListTestCaseResultsResponse.ProtoReflect.Descriptor instead. 2460func (*ListTestCaseResultsResponse) Descriptor() ([]byte, []int) { 2461 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{31} 2462} 2463 2464func (x *ListTestCaseResultsResponse) GetTestCaseResults() []*TestCaseResult { 2465 if x != nil { 2466 return x.TestCaseResults 2467 } 2468 return nil 2469} 2470 2471func (x *ListTestCaseResultsResponse) GetNextPageToken() string { 2472 if x != nil { 2473 return x.NextPageToken 2474 } 2475 return "" 2476} 2477 2478// The request message for [TestCases.GetTestCaseResult][google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCaseResult]. 2479type GetTestCaseResultRequest struct { 2480 state protoimpl.MessageState 2481 sizeCache protoimpl.SizeCache 2482 unknownFields protoimpl.UnknownFields 2483 2484 // Required. The name of the testcase. 2485 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 2486 // ID>/testCases/<TestCase ID>/results/<TestCaseResult ID>`. 2487 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2488} 2489 2490func (x *GetTestCaseResultRequest) Reset() { 2491 *x = GetTestCaseResultRequest{} 2492 if protoimpl.UnsafeEnabled { 2493 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[32] 2494 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2495 ms.StoreMessageInfo(mi) 2496 } 2497} 2498 2499func (x *GetTestCaseResultRequest) String() string { 2500 return protoimpl.X.MessageStringOf(x) 2501} 2502 2503func (*GetTestCaseResultRequest) ProtoMessage() {} 2504 2505func (x *GetTestCaseResultRequest) ProtoReflect() protoreflect.Message { 2506 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[32] 2507 if protoimpl.UnsafeEnabled && x != nil { 2508 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2509 if ms.LoadMessageInfo() == nil { 2510 ms.StoreMessageInfo(mi) 2511 } 2512 return ms 2513 } 2514 return mi.MessageOf(x) 2515} 2516 2517// Deprecated: Use GetTestCaseResultRequest.ProtoReflect.Descriptor instead. 2518func (*GetTestCaseResultRequest) Descriptor() ([]byte, []int) { 2519 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{32} 2520} 2521 2522func (x *GetTestCaseResultRequest) GetName() string { 2523 if x != nil { 2524 return x.Name 2525 } 2526 return "" 2527} 2528 2529// The input from the human user. 2530type ConversationTurn_UserInput struct { 2531 state protoimpl.MessageState 2532 sizeCache protoimpl.SizeCache 2533 unknownFields protoimpl.UnknownFields 2534 2535 // Supports [text input][google.cloud.dialogflow.cx.v3beta1.QueryInput.text], [event input][google.cloud.dialogflow.cx.v3beta1.QueryInput.event], 2536 // [dtmf input][google.cloud.dialogflow.cx.v3beta1.QueryInput.dtmf] in the test case. 2537 Input *QueryInput `protobuf:"bytes,5,opt,name=input,proto3" json:"input,omitempty"` 2538 // Parameters that need to be injected into the conversation during intent 2539 // detection. 2540 InjectedParameters *structpb.Struct `protobuf:"bytes,2,opt,name=injected_parameters,json=injectedParameters,proto3" json:"injected_parameters,omitempty"` 2541 // If webhooks should be allowed to trigger in response to the user 2542 // utterance. Often if parameters are injected, webhooks should not be 2543 // enabled. 2544 IsWebhookEnabled bool `protobuf:"varint,3,opt,name=is_webhook_enabled,json=isWebhookEnabled,proto3" json:"is_webhook_enabled,omitempty"` 2545 // Whether sentiment analysis is enabled. 2546 EnableSentimentAnalysis bool `protobuf:"varint,7,opt,name=enable_sentiment_analysis,json=enableSentimentAnalysis,proto3" json:"enable_sentiment_analysis,omitempty"` 2547} 2548 2549func (x *ConversationTurn_UserInput) Reset() { 2550 *x = ConversationTurn_UserInput{} 2551 if protoimpl.UnsafeEnabled { 2552 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[33] 2553 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2554 ms.StoreMessageInfo(mi) 2555 } 2556} 2557 2558func (x *ConversationTurn_UserInput) String() string { 2559 return protoimpl.X.MessageStringOf(x) 2560} 2561 2562func (*ConversationTurn_UserInput) ProtoMessage() {} 2563 2564func (x *ConversationTurn_UserInput) ProtoReflect() protoreflect.Message { 2565 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[33] 2566 if protoimpl.UnsafeEnabled && x != nil { 2567 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2568 if ms.LoadMessageInfo() == nil { 2569 ms.StoreMessageInfo(mi) 2570 } 2571 return ms 2572 } 2573 return mi.MessageOf(x) 2574} 2575 2576// Deprecated: Use ConversationTurn_UserInput.ProtoReflect.Descriptor instead. 2577func (*ConversationTurn_UserInput) Descriptor() ([]byte, []int) { 2578 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{3, 0} 2579} 2580 2581func (x *ConversationTurn_UserInput) GetInput() *QueryInput { 2582 if x != nil { 2583 return x.Input 2584 } 2585 return nil 2586} 2587 2588func (x *ConversationTurn_UserInput) GetInjectedParameters() *structpb.Struct { 2589 if x != nil { 2590 return x.InjectedParameters 2591 } 2592 return nil 2593} 2594 2595func (x *ConversationTurn_UserInput) GetIsWebhookEnabled() bool { 2596 if x != nil { 2597 return x.IsWebhookEnabled 2598 } 2599 return false 2600} 2601 2602func (x *ConversationTurn_UserInput) GetEnableSentimentAnalysis() bool { 2603 if x != nil { 2604 return x.EnableSentimentAnalysis 2605 } 2606 return false 2607} 2608 2609// The output from the virtual agent. 2610type ConversationTurn_VirtualAgentOutput struct { 2611 state protoimpl.MessageState 2612 sizeCache protoimpl.SizeCache 2613 unknownFields protoimpl.UnknownFields 2614 2615 // The session parameters available to the bot at this point. 2616 SessionParameters *structpb.Struct `protobuf:"bytes,4,opt,name=session_parameters,json=sessionParameters,proto3" json:"session_parameters,omitempty"` 2617 // Output only. If this is part of a [result conversation 2618 // turn][TestCaseResult.conversation_turns], the list of differences 2619 // between the original run and the replay for this output, if any. 2620 Differences []*TestRunDifference `protobuf:"bytes,5,rep,name=differences,proto3" json:"differences,omitempty"` 2621 // Required. Input only. The diagnostic 2622 // [info][Session.DetectIntentResponse.QueryResult.diagnostic_info] 2623 // output for the turn. Required to calculate the testing coverage. 2624 DiagnosticInfo *structpb.Struct `protobuf:"bytes,6,opt,name=diagnostic_info,json=diagnosticInfo,proto3" json:"diagnostic_info,omitempty"` 2625 // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that triggered the response. Only name and displayName 2626 // will be set. 2627 TriggeredIntent *Intent `protobuf:"bytes,7,opt,name=triggered_intent,json=triggeredIntent,proto3" json:"triggered_intent,omitempty"` 2628 // The [Page][google.cloud.dialogflow.cx.v3beta1.Page] on which the utterance was spoken. Only name and displayName 2629 // will be set. 2630 CurrentPage *Page `protobuf:"bytes,8,opt,name=current_page,json=currentPage,proto3" json:"current_page,omitempty"` 2631 // The [text][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Text] responses from the agent for the turn. 2632 TextResponses []*ResponseMessage_Text `protobuf:"bytes,9,rep,name=text_responses,json=textResponses,proto3" json:"text_responses,omitempty"` 2633 // Response error from the agent in the test result. If set, other output 2634 // is empty. 2635 Status *status.Status `protobuf:"bytes,10,opt,name=status,proto3" json:"status,omitempty"` 2636} 2637 2638func (x *ConversationTurn_VirtualAgentOutput) Reset() { 2639 *x = ConversationTurn_VirtualAgentOutput{} 2640 if protoimpl.UnsafeEnabled { 2641 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[34] 2642 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2643 ms.StoreMessageInfo(mi) 2644 } 2645} 2646 2647func (x *ConversationTurn_VirtualAgentOutput) String() string { 2648 return protoimpl.X.MessageStringOf(x) 2649} 2650 2651func (*ConversationTurn_VirtualAgentOutput) ProtoMessage() {} 2652 2653func (x *ConversationTurn_VirtualAgentOutput) ProtoReflect() protoreflect.Message { 2654 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[34] 2655 if protoimpl.UnsafeEnabled && x != nil { 2656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2657 if ms.LoadMessageInfo() == nil { 2658 ms.StoreMessageInfo(mi) 2659 } 2660 return ms 2661 } 2662 return mi.MessageOf(x) 2663} 2664 2665// Deprecated: Use ConversationTurn_VirtualAgentOutput.ProtoReflect.Descriptor instead. 2666func (*ConversationTurn_VirtualAgentOutput) Descriptor() ([]byte, []int) { 2667 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{3, 1} 2668} 2669 2670func (x *ConversationTurn_VirtualAgentOutput) GetSessionParameters() *structpb.Struct { 2671 if x != nil { 2672 return x.SessionParameters 2673 } 2674 return nil 2675} 2676 2677func (x *ConversationTurn_VirtualAgentOutput) GetDifferences() []*TestRunDifference { 2678 if x != nil { 2679 return x.Differences 2680 } 2681 return nil 2682} 2683 2684func (x *ConversationTurn_VirtualAgentOutput) GetDiagnosticInfo() *structpb.Struct { 2685 if x != nil { 2686 return x.DiagnosticInfo 2687 } 2688 return nil 2689} 2690 2691func (x *ConversationTurn_VirtualAgentOutput) GetTriggeredIntent() *Intent { 2692 if x != nil { 2693 return x.TriggeredIntent 2694 } 2695 return nil 2696} 2697 2698func (x *ConversationTurn_VirtualAgentOutput) GetCurrentPage() *Page { 2699 if x != nil { 2700 return x.CurrentPage 2701 } 2702 return nil 2703} 2704 2705func (x *ConversationTurn_VirtualAgentOutput) GetTextResponses() []*ResponseMessage_Text { 2706 if x != nil { 2707 return x.TextResponses 2708 } 2709 return nil 2710} 2711 2712func (x *ConversationTurn_VirtualAgentOutput) GetStatus() *status.Status { 2713 if x != nil { 2714 return x.Status 2715 } 2716 return nil 2717} 2718 2719// The source or target of a transition. 2720type TransitionCoverage_TransitionNode struct { 2721 state protoimpl.MessageState 2722 sizeCache protoimpl.SizeCache 2723 unknownFields protoimpl.UnknownFields 2724 2725 // A TransitionNode can be either a page or a flow. 2726 // 2727 // Types that are assignable to Kind: 2728 // *TransitionCoverage_TransitionNode_Page 2729 // *TransitionCoverage_TransitionNode_Flow 2730 Kind isTransitionCoverage_TransitionNode_Kind `protobuf_oneof:"kind"` 2731} 2732 2733func (x *TransitionCoverage_TransitionNode) Reset() { 2734 *x = TransitionCoverage_TransitionNode{} 2735 if protoimpl.UnsafeEnabled { 2736 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[35] 2737 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2738 ms.StoreMessageInfo(mi) 2739 } 2740} 2741 2742func (x *TransitionCoverage_TransitionNode) String() string { 2743 return protoimpl.X.MessageStringOf(x) 2744} 2745 2746func (*TransitionCoverage_TransitionNode) ProtoMessage() {} 2747 2748func (x *TransitionCoverage_TransitionNode) ProtoReflect() protoreflect.Message { 2749 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[35] 2750 if protoimpl.UnsafeEnabled && x != nil { 2751 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2752 if ms.LoadMessageInfo() == nil { 2753 ms.StoreMessageInfo(mi) 2754 } 2755 return ms 2756 } 2757 return mi.MessageOf(x) 2758} 2759 2760// Deprecated: Use TransitionCoverage_TransitionNode.ProtoReflect.Descriptor instead. 2761func (*TransitionCoverage_TransitionNode) Descriptor() ([]byte, []int) { 2762 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{5, 0} 2763} 2764 2765func (m *TransitionCoverage_TransitionNode) GetKind() isTransitionCoverage_TransitionNode_Kind { 2766 if m != nil { 2767 return m.Kind 2768 } 2769 return nil 2770} 2771 2772func (x *TransitionCoverage_TransitionNode) GetPage() *Page { 2773 if x, ok := x.GetKind().(*TransitionCoverage_TransitionNode_Page); ok { 2774 return x.Page 2775 } 2776 return nil 2777} 2778 2779func (x *TransitionCoverage_TransitionNode) GetFlow() *Flow { 2780 if x, ok := x.GetKind().(*TransitionCoverage_TransitionNode_Flow); ok { 2781 return x.Flow 2782 } 2783 return nil 2784} 2785 2786type isTransitionCoverage_TransitionNode_Kind interface { 2787 isTransitionCoverage_TransitionNode_Kind() 2788} 2789 2790type TransitionCoverage_TransitionNode_Page struct { 2791 // Indicates a transition to a [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Only some fields such as name and 2792 // displayname will be set. 2793 Page *Page `protobuf:"bytes,1,opt,name=page,proto3,oneof"` 2794} 2795 2796type TransitionCoverage_TransitionNode_Flow struct { 2797 // Indicates a transition to a [Flow][google.cloud.dialogflow.cx.v3beta1.Flow]. Only some fields such as name and 2798 // displayname will be set. 2799 Flow *Flow `protobuf:"bytes,2,opt,name=flow,proto3,oneof"` 2800} 2801 2802func (*TransitionCoverage_TransitionNode_Page) isTransitionCoverage_TransitionNode_Kind() {} 2803 2804func (*TransitionCoverage_TransitionNode_Flow) isTransitionCoverage_TransitionNode_Kind() {} 2805 2806// A transition in a page. 2807type TransitionCoverage_Transition struct { 2808 state protoimpl.MessageState 2809 sizeCache protoimpl.SizeCache 2810 unknownFields protoimpl.UnknownFields 2811 2812 // The start node of a transition. 2813 Source *TransitionCoverage_TransitionNode `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` 2814 // The index of a transition in the transition list. Starting from 0. 2815 Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` 2816 // The end node of a transition. 2817 Target *TransitionCoverage_TransitionNode `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` 2818 // Whether or not the transition is covered by at least one of the 2819 // agent's test cases. 2820 Covered bool `protobuf:"varint,3,opt,name=covered,proto3" json:"covered,omitempty"` 2821 // The detailed transition. 2822 // 2823 // Types that are assignable to Detail: 2824 // *TransitionCoverage_Transition_TransitionRoute 2825 // *TransitionCoverage_Transition_EventHandler 2826 Detail isTransitionCoverage_Transition_Detail `protobuf_oneof:"detail"` 2827} 2828 2829func (x *TransitionCoverage_Transition) Reset() { 2830 *x = TransitionCoverage_Transition{} 2831 if protoimpl.UnsafeEnabled { 2832 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[36] 2833 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2834 ms.StoreMessageInfo(mi) 2835 } 2836} 2837 2838func (x *TransitionCoverage_Transition) String() string { 2839 return protoimpl.X.MessageStringOf(x) 2840} 2841 2842func (*TransitionCoverage_Transition) ProtoMessage() {} 2843 2844func (x *TransitionCoverage_Transition) ProtoReflect() protoreflect.Message { 2845 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[36] 2846 if protoimpl.UnsafeEnabled && x != nil { 2847 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2848 if ms.LoadMessageInfo() == nil { 2849 ms.StoreMessageInfo(mi) 2850 } 2851 return ms 2852 } 2853 return mi.MessageOf(x) 2854} 2855 2856// Deprecated: Use TransitionCoverage_Transition.ProtoReflect.Descriptor instead. 2857func (*TransitionCoverage_Transition) Descriptor() ([]byte, []int) { 2858 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{5, 1} 2859} 2860 2861func (x *TransitionCoverage_Transition) GetSource() *TransitionCoverage_TransitionNode { 2862 if x != nil { 2863 return x.Source 2864 } 2865 return nil 2866} 2867 2868func (x *TransitionCoverage_Transition) GetIndex() int32 { 2869 if x != nil { 2870 return x.Index 2871 } 2872 return 0 2873} 2874 2875func (x *TransitionCoverage_Transition) GetTarget() *TransitionCoverage_TransitionNode { 2876 if x != nil { 2877 return x.Target 2878 } 2879 return nil 2880} 2881 2882func (x *TransitionCoverage_Transition) GetCovered() bool { 2883 if x != nil { 2884 return x.Covered 2885 } 2886 return false 2887} 2888 2889func (m *TransitionCoverage_Transition) GetDetail() isTransitionCoverage_Transition_Detail { 2890 if m != nil { 2891 return m.Detail 2892 } 2893 return nil 2894} 2895 2896func (x *TransitionCoverage_Transition) GetTransitionRoute() *TransitionRoute { 2897 if x, ok := x.GetDetail().(*TransitionCoverage_Transition_TransitionRoute); ok { 2898 return x.TransitionRoute 2899 } 2900 return nil 2901} 2902 2903func (x *TransitionCoverage_Transition) GetEventHandler() *EventHandler { 2904 if x, ok := x.GetDetail().(*TransitionCoverage_Transition_EventHandler); ok { 2905 return x.EventHandler 2906 } 2907 return nil 2908} 2909 2910type isTransitionCoverage_Transition_Detail interface { 2911 isTransitionCoverage_Transition_Detail() 2912} 2913 2914type TransitionCoverage_Transition_TransitionRoute struct { 2915 // Intent route or condition route. 2916 TransitionRoute *TransitionRoute `protobuf:"bytes,5,opt,name=transition_route,json=transitionRoute,proto3,oneof"` 2917} 2918 2919type TransitionCoverage_Transition_EventHandler struct { 2920 // Event handler. 2921 EventHandler *EventHandler `protobuf:"bytes,6,opt,name=event_handler,json=eventHandler,proto3,oneof"` 2922} 2923 2924func (*TransitionCoverage_Transition_TransitionRoute) isTransitionCoverage_Transition_Detail() {} 2925 2926func (*TransitionCoverage_Transition_EventHandler) isTransitionCoverage_Transition_Detail() {} 2927 2928// Coverage result message for one transition route group. 2929type TransitionRouteGroupCoverage_Coverage struct { 2930 state protoimpl.MessageState 2931 sizeCache protoimpl.SizeCache 2932 unknownFields protoimpl.UnknownFields 2933 2934 // Transition route group metadata. Only name and displayName will be set. 2935 RouteGroup *TransitionRouteGroup `protobuf:"bytes,1,opt,name=route_group,json=routeGroup,proto3" json:"route_group,omitempty"` 2936 // The list of transition routes and coverage in the transition route group. 2937 Transitions []*TransitionRouteGroupCoverage_Coverage_Transition `protobuf:"bytes,2,rep,name=transitions,proto3" json:"transitions,omitempty"` 2938 // The percent of transition routes in the transition route group that are 2939 // covered. 2940 CoverageScore float32 `protobuf:"fixed32,3,opt,name=coverage_score,json=coverageScore,proto3" json:"coverage_score,omitempty"` 2941} 2942 2943func (x *TransitionRouteGroupCoverage_Coverage) Reset() { 2944 *x = TransitionRouteGroupCoverage_Coverage{} 2945 if protoimpl.UnsafeEnabled { 2946 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[37] 2947 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2948 ms.StoreMessageInfo(mi) 2949 } 2950} 2951 2952func (x *TransitionRouteGroupCoverage_Coverage) String() string { 2953 return protoimpl.X.MessageStringOf(x) 2954} 2955 2956func (*TransitionRouteGroupCoverage_Coverage) ProtoMessage() {} 2957 2958func (x *TransitionRouteGroupCoverage_Coverage) ProtoReflect() protoreflect.Message { 2959 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[37] 2960 if protoimpl.UnsafeEnabled && x != nil { 2961 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2962 if ms.LoadMessageInfo() == nil { 2963 ms.StoreMessageInfo(mi) 2964 } 2965 return ms 2966 } 2967 return mi.MessageOf(x) 2968} 2969 2970// Deprecated: Use TransitionRouteGroupCoverage_Coverage.ProtoReflect.Descriptor instead. 2971func (*TransitionRouteGroupCoverage_Coverage) Descriptor() ([]byte, []int) { 2972 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{6, 0} 2973} 2974 2975func (x *TransitionRouteGroupCoverage_Coverage) GetRouteGroup() *TransitionRouteGroup { 2976 if x != nil { 2977 return x.RouteGroup 2978 } 2979 return nil 2980} 2981 2982func (x *TransitionRouteGroupCoverage_Coverage) GetTransitions() []*TransitionRouteGroupCoverage_Coverage_Transition { 2983 if x != nil { 2984 return x.Transitions 2985 } 2986 return nil 2987} 2988 2989func (x *TransitionRouteGroupCoverage_Coverage) GetCoverageScore() float32 { 2990 if x != nil { 2991 return x.CoverageScore 2992 } 2993 return 0 2994} 2995 2996// A transition coverage in a transition route group. 2997type TransitionRouteGroupCoverage_Coverage_Transition struct { 2998 state protoimpl.MessageState 2999 sizeCache protoimpl.SizeCache 3000 unknownFields protoimpl.UnknownFields 3001 3002 // Intent route or condition route. 3003 TransitionRoute *TransitionRoute `protobuf:"bytes,1,opt,name=transition_route,json=transitionRoute,proto3" json:"transition_route,omitempty"` 3004 // Whether or not the transition route is covered by at least one of the 3005 // agent's test cases. 3006 Covered bool `protobuf:"varint,2,opt,name=covered,proto3" json:"covered,omitempty"` 3007} 3008 3009func (x *TransitionRouteGroupCoverage_Coverage_Transition) Reset() { 3010 *x = TransitionRouteGroupCoverage_Coverage_Transition{} 3011 if protoimpl.UnsafeEnabled { 3012 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[38] 3013 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3014 ms.StoreMessageInfo(mi) 3015 } 3016} 3017 3018func (x *TransitionRouteGroupCoverage_Coverage_Transition) String() string { 3019 return protoimpl.X.MessageStringOf(x) 3020} 3021 3022func (*TransitionRouteGroupCoverage_Coverage_Transition) ProtoMessage() {} 3023 3024func (x *TransitionRouteGroupCoverage_Coverage_Transition) ProtoReflect() protoreflect.Message { 3025 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[38] 3026 if protoimpl.UnsafeEnabled && x != nil { 3027 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3028 if ms.LoadMessageInfo() == nil { 3029 ms.StoreMessageInfo(mi) 3030 } 3031 return ms 3032 } 3033 return mi.MessageOf(x) 3034} 3035 3036// Deprecated: Use TransitionRouteGroupCoverage_Coverage_Transition.ProtoReflect.Descriptor instead. 3037func (*TransitionRouteGroupCoverage_Coverage_Transition) Descriptor() ([]byte, []int) { 3038 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{6, 0, 0} 3039} 3040 3041func (x *TransitionRouteGroupCoverage_Coverage_Transition) GetTransitionRoute() *TransitionRoute { 3042 if x != nil { 3043 return x.TransitionRoute 3044 } 3045 return nil 3046} 3047 3048func (x *TransitionRouteGroupCoverage_Coverage_Transition) GetCovered() bool { 3049 if x != nil { 3050 return x.Covered 3051 } 3052 return false 3053} 3054 3055// The agent's intent. 3056type IntentCoverage_Intent struct { 3057 state protoimpl.MessageState 3058 sizeCache protoimpl.SizeCache 3059 unknownFields protoimpl.UnknownFields 3060 3061 // The intent full resource name 3062 Intent string `protobuf:"bytes,1,opt,name=intent,proto3" json:"intent,omitempty"` 3063 // Whether or not the intent is covered by at least one of the agent's 3064 // test cases. 3065 Covered bool `protobuf:"varint,2,opt,name=covered,proto3" json:"covered,omitempty"` 3066} 3067 3068func (x *IntentCoverage_Intent) Reset() { 3069 *x = IntentCoverage_Intent{} 3070 if protoimpl.UnsafeEnabled { 3071 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[39] 3072 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3073 ms.StoreMessageInfo(mi) 3074 } 3075} 3076 3077func (x *IntentCoverage_Intent) String() string { 3078 return protoimpl.X.MessageStringOf(x) 3079} 3080 3081func (*IntentCoverage_Intent) ProtoMessage() {} 3082 3083func (x *IntentCoverage_Intent) ProtoReflect() protoreflect.Message { 3084 mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[39] 3085 if protoimpl.UnsafeEnabled && x != nil { 3086 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3087 if ms.LoadMessageInfo() == nil { 3088 ms.StoreMessageInfo(mi) 3089 } 3090 return ms 3091 } 3092 return mi.MessageOf(x) 3093} 3094 3095// Deprecated: Use IntentCoverage_Intent.ProtoReflect.Descriptor instead. 3096func (*IntentCoverage_Intent) Descriptor() ([]byte, []int) { 3097 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{7, 0} 3098} 3099 3100func (x *IntentCoverage_Intent) GetIntent() string { 3101 if x != nil { 3102 return x.Intent 3103 } 3104 return "" 3105} 3106 3107func (x *IntentCoverage_Intent) GetCovered() bool { 3108 if x != nil { 3109 return x.Covered 3110 } 3111 return false 3112} 3113 3114var File_google_cloud_dialogflow_cx_v3beta1_test_case_proto protoreflect.FileDescriptor 3115 3116var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc = []byte{ 3117 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 3118 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 3119 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 3120 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3121 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3122 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3123 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3124 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 3125 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 3126 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 3127 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3128 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 3129 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 3130 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3131 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 3132 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 3133 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3134 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 3135 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 3136 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3137 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 3138 0x70, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 3139 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3140 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 3141 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 3142 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 3143 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 3144 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 3145 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 3146 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3147 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 3148 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x6f, 3149 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3150 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 3151 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 3152 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 3153 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 3154 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 3155 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 3156 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 3157 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 3158 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 3159 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 3160 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 3161 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3162 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 3163 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 3164 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 3165 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 3166 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 3167 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 3168 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 3169 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 3170 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 3171 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 3172 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x74, 0x65, 3173 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x75, 0x0a, 0x1c, 0x74, 0x65, 0x73, 0x74, 3174 0x5f, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 3175 0x6f, 0x6e, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 3176 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3177 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 3178 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3179 0x54, 0x75, 0x72, 0x6e, 0x52, 0x19, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x43, 0x6f, 3180 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x73, 0x12, 3181 0x44, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 3182 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3183 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 3184 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 3185 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x65, 3186 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 3187 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3188 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 3189 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 3190 0x75, 0x6c, 0x74, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 3191 0x75, 0x6c, 0x74, 0x3a, 0x75, 0xea, 0x41, 0x72, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3192 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3193 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x4c, 0x70, 0x72, 3194 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 3195 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 3196 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 3197 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 3198 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x22, 0xf1, 0x03, 0x0a, 0x0e, 0x54, 3199 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 3200 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 3201 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 3202 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x61, 3203 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3204 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 3205 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 3206 0x63, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 3207 0x74, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 3208 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 3209 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 3210 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 3211 0x6e, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 3212 0x75, 0x72, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 3213 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3214 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3215 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 3216 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x52, 3217 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 3218 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3219 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 3220 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x8d, 3221 0x01, 0xea, 0x41, 0x89, 0x01, 0x0a, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3222 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3223 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 3224 0x5d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 3225 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 3226 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 3227 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3228 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x72, 0x65, 3229 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x7d, 0x22, 0x76, 3230 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x13, 3231 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 3232 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x63, 0x6b, 3233 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x37, 0x0a, 3234 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 3235 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 3236 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 3237 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xac, 0x08, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 3238 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x5d, 0x0a, 0x0a, 0x75, 3239 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 3240 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3241 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 3242 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 3243 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 3244 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x14, 0x76, 0x69, 3245 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 3246 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3247 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 3248 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 3249 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x2e, 0x56, 3250 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 3251 0x74, 0x52, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4f, 3252 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x85, 0x02, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 3253 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 3254 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3255 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3256 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 3257 0x75, 0x74, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x48, 0x0a, 0x13, 0x69, 0x6e, 0x6a, 3258 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 3259 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3260 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 3261 0x12, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 3262 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 3263 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 3264 0x10, 0x69, 0x73, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 3265 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x74, 3266 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x07, 3267 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x74, 3268 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x1a, 0xb5, 0x04, 3269 0x0a, 0x12, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4f, 0x75, 3270 0x74, 0x70, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 3271 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 3272 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 3273 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 3274 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x0b, 3275 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 3276 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3277 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3278 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 3279 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 3280 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x64, 0x69, 3281 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 3282 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3283 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x06, 0xe0, 0x41, 3284 0x02, 0xe0, 0x41, 0x04, 0x52, 0x0e, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 3285 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x55, 0x0a, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 3286 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 3287 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3288 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 3289 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x69, 0x67, 3290 0x67, 0x65, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 3291 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 3292 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3293 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3294 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 3295 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x0e, 0x74, 0x65, 0x78, 0x74, 3296 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 3297 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3298 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3299 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 3300 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x74, 0x65, 0x78, 0x74, 3301 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 3302 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3303 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 3304 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 3305 0x6e, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x74, 3306 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3307 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3308 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 3309 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 3310 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 3311 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 3312 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3313 0x6e, 0x22, 0x5a, 0x0a, 0x08, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 3314 0x15, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 3315 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 3316 0x4e, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0e, 3317 0x0a, 0x0a, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, 0x0d, 3318 0x0a, 0x09, 0x55, 0x54, 0x54, 0x45, 0x52, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x04, 0x22, 0xfd, 0x05, 3319 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 3320 0x72, 0x61, 0x67, 0x65, 0x12, 0x63, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 3321 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3322 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3323 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 3324 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 3325 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 3326 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x76, 3327 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3328 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 3329 0x1a, 0x98, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 3330 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 3331 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3332 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3333 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x04, 0x70, 3334 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 3335 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3336 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3337 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 3338 0x6c, 0x6f, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xbf, 0x03, 0x0a, 0x0a, 3339 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x06, 0x73, 0x6f, 3340 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 3341 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3342 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3343 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 3344 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 3345 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 3346 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 3347 0x5d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 3348 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3349 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 3350 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 3351 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 3352 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 3353 0x0a, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 3354 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 3355 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 3356 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3357 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3358 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 3359 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 3360 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x0d, 0x65, 0x76, 3361 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 3362 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3363 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3364 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 3365 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 3366 0x6c, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xbe, 0x04, 3367 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 3368 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x67, 3369 0x0a, 0x09, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 3370 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3371 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3372 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 3373 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 3374 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x09, 0x63, 0x6f, 3375 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x76, 0x65, 0x72, 3376 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 3377 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x8d, 3378 0x03, 0x0a, 0x08, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x0b, 0x72, 3379 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 3380 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3381 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3382 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 3383 0x52, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 3384 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x76, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 3385 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x67, 0x6f, 3386 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 3387 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 3388 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 3389 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 3390 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 3391 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 3392 0x0a, 0x0e, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 3393 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 3394 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x86, 0x01, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 3395 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 3396 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 3397 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3398 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 3399 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 3400 0x75, 0x74, 0x65, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3401 0x6f, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 3402 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x22, 0xef, 3403 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 3404 0x65, 0x12, 0x53, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 3405 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3406 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3407 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 3408 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x69, 3409 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 3410 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 3411 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x61, 0x0a, 3412 0x06, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 3413 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x64, 0x69, 3414 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 3415 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 3416 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 3417 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 3418 0x22, 0xa9, 0x02, 0x0a, 0x18, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 3419 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 3420 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 3421 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3422 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3423 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x04, 3424 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 3425 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3426 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3427 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 3428 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 3429 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 3430 0x22, 0x6a, 0x0a, 0x0c, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 3431 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 3432 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 3433 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x50, 3434 0x41, 0x47, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 3435 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 3436 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x03, 0x22, 0xa8, 0x03, 0x0a, 3437 0x19, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 3438 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x61, 0x67, 3439 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 3440 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3441 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 3442 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 3443 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 3444 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3445 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 3446 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 3447 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 3448 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 3449 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 3450 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3451 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3452 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 3453 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x74, 0x72, 3454 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 3455 0x12, 0x74, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 3456 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 3457 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3458 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 3459 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 3460 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 3461 0x48, 0x00, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 3462 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 3463 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb6, 0x02, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 3464 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3465 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3466 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3467 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3468 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 3469 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 3470 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 3471 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 3472 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 3473 0x12, 0x59, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 3474 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3475 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 3476 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3477 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3478 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x22, 0x43, 0x0a, 0x0c, 0x54, 3479 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 3480 0x45, 0x53, 0x54, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 3481 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 3482 0x41, 0x53, 0x49, 0x43, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 3483 0x22, 0x8c, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3484 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x74, 0x65, 3485 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 3486 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 3487 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 3488 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x09, 0x74, 0x65, 3489 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 3490 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3491 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 3492 0xa3, 0x01, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 3493 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3494 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 3495 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3496 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3497 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 3498 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 3499 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 3500 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 3501 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 3502 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 3503 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3504 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 3505 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3506 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3507 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 3508 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 3509 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3510 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3511 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 3512 0x43, 0x61, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 3513 0x61, 0x73, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 3514 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 3515 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 3516 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3517 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 3518 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x42, 0x03, 3519 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x40, 0x0a, 3520 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 3521 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3522 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 3523 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 3524 0x54, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 3525 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 3526 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 3527 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3528 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3529 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 3530 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 3531 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 3532 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 3533 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 3534 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0b, 3535 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 3536 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x61, 0x6c, 0x6f, 3537 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 3538 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 3539 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x61, 0x0a, 3540 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 3541 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 3542 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3543 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 3544 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3545 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 3546 0x22, 0x15, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x4d, 3547 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x01, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 3548 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 3549 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 3550 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 3551 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 3552 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3553 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 3554 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 3555 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3556 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3557 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 3558 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x74, 0x65, 0x73, 3559 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2a, 0xe0, 3560 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3561 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3562 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x43, 3563 0x61, 0x73, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 3564 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3565 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 3566 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3567 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3568 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3569 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 3570 0x62, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 3571 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x06, 3572 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 3573 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 3574 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 3575 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 3576 0x6f, 0x72, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 3577 0x72, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x01, 3578 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 3579 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 3580 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x08, 0x74, 3581 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 3582 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3583 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 3584 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 3585 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3586 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 3587 0x6d, 0x70, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9d, 0x01, 0x0a, 3588 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3589 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 3590 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 3591 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3592 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 3593 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x67, 3594 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 3595 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 3596 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 3597 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x17, 3598 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 3599 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 3600 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 3601 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3602 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3603 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x64, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 3604 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 3605 0x61, 0x12, 0x49, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 3606 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3607 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3608 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x45, 3609 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x86, 0x01, 0x0a, 3610 0x0d, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x49, 3611 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 3612 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3613 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3614 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3615 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 3616 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3617 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 3618 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc5, 0x02, 0x0a, 0x16, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 3619 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3620 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3621 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3622 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3623 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 3624 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 3625 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 3626 0x66, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 3627 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3628 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 3629 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 3630 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3631 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 3632 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 3633 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 3634 0x3d, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1b, 0x0a, 3635 0x17, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 3636 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4c, 3637 0x4f, 0x42, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x02, 0x42, 0x0d, 3638 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5f, 0x0a, 3639 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3640 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 3641 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x67, 0x63, 0x73, 3642 0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 3643 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 3644 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x19, 3645 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3646 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 3647 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 3648 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 3649 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 3650 0x12, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 3651 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 3652 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 3653 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 3654 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 3655 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 3656 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 3657 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 3658 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa5, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 3659 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 3660 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 3661 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 3662 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3663 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 3664 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3665 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 3666 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 3667 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 3668 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x60, 3669 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 3670 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 3671 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 3672 0x0a, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 3673 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 3674 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 3675 0x2a, 0x41, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 3676 0x0a, 0x17, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, 0x4e, 3677 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 3678 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 3679 0x44, 0x10, 0x02, 0x32, 0xb6, 0x16, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3680 0x73, 0x12, 0xd2, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3681 0x73, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3682 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3683 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 3684 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 3685 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 3686 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 3687 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3688 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 3689 0x12, 0x3b, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 3690 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 3691 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 3692 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0xda, 0x41, 0x06, 3693 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xcc, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 3694 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 3695 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3696 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 3697 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 3698 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3699 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 3700 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 3701 0x22, 0x47, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 3702 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 3703 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 3704 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x62, 0x61, 3705 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x06, 0x70, 3706 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 3707 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3708 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3709 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 3710 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 3711 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 3712 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 3713 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 3714 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 3715 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 3716 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 3717 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 3718 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdc, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 3719 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 3720 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3721 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3722 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 3723 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3724 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 3725 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 3726 0x61, 0x73, 0x65, 0x22, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x22, 0x3b, 0x2f, 0x76, 0x33, 3727 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 3728 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 3729 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 3730 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 3731 0x61, 0x73, 0x65, 0xda, 0x41, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, 0x65, 0x73, 3732 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x12, 0xeb, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 3733 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3734 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 3735 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 3736 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 3737 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3738 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 3739 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3740 0x73, 0x65, 0x22, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x32, 0x45, 0x2f, 0x76, 0x33, 0x62, 3741 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x2e, 3742 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 3743 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 3744 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 3745 0x7d, 0x3a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0xda, 0x41, 0x15, 0x74, 3746 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 3747 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xdd, 0x01, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 3748 0x43, 0x61, 0x73, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3749 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 3750 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 3751 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 3752 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 3753 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x82, 0xd3, 0xe4, 3754 0x93, 0x02, 0x44, 0x22, 0x3f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 3755 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 3756 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 3757 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 3758 0x3a, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x2a, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 3759 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 3760 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 3761 0x64, 0x61, 0x74, 0x61, 0x12, 0xfb, 0x01, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 3762 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 3763 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3764 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3765 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 3766 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3767 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 3768 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 3769 0x22, 0x44, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 3770 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 3771 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 3772 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x62, 0x61, 3773 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x36, 0x0a, 0x19, 0x42, 0x61, 3774 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 3775 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 3776 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 3777 0x74, 0x61, 0x12, 0xe6, 0x01, 0x0a, 0x11, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 3778 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3779 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 3780 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 3781 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 3782 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3783 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3784 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 3785 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 3786 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 3787 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x3d, 0x70, 3788 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3789 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 3790 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 3791 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x0f, 3792 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 3793 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 3794 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 3795 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 3796 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 3797 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 3798 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, 3799 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 3800 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 3801 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 3802 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3803 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x32, 0x0a, 0x17, 0x49, 3804 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 3805 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 3806 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 3807 0xf1, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 3808 0x73, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3809 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 3810 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 3811 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 3812 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 3813 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 3814 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 3815 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 3816 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 3817 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 3818 0x61, 0x73, 0x65, 0x73, 0x3a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 3819 0x32, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3820 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x45, 0x78, 0x70, 0x6f, 3821 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 3822 0x61, 0x74, 0x61, 0x12, 0xee, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 3823 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 3824 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 3825 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 3826 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 3827 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 3828 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 3829 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 3830 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 3831 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 3832 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 3833 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 3834 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 3835 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 3836 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 3837 0x72, 0x65, 0x6e, 0x74, 0x12, 0xdb, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 3838 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 3839 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 3840 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3841 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 3842 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3843 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 3844 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 3845 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x54, 0x82, 0xd3, 3846 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 3847 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 3848 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 3849 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 3850 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 3851 0x6d, 0x65, 0x1a, 0x78, 0xca, 0x41, 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 3852 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3853 0xd2, 0x41, 0x59, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 3854 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 3855 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 3856 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 3857 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 3858 0x68, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0xd5, 0x01, 0x0a, 3859 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3860 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 3861 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 3862 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3863 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 3864 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 3865 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3866 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x78, 0xf8, 0x01, 3867 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3868 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 3869 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x26, 0x47, 0x6f, 3870 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x69, 0x61, 3871 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x3a, 0x43, 0x58, 0x3a, 0x3a, 0x56, 0x33, 0x62, 3872 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 3873} 3874 3875var ( 3876 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescOnce sync.Once 3877 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData = file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc 3878) 3879 3880func file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP() []byte { 3881 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescOnce.Do(func() { 3882 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData) 3883 }) 3884 return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData 3885} 3886 3887var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes = make([]protoimpl.EnumInfo, 5) 3888var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes = make([]protoimpl.MessageInfo, 40) 3889var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_goTypes = []interface{}{ 3890 (TestResult)(0), // 0: google.cloud.dialogflow.cx.v3beta1.TestResult 3891 (TestRunDifference_DiffType)(0), // 1: google.cloud.dialogflow.cx.v3beta1.TestRunDifference.DiffType 3892 (CalculateCoverageRequest_CoverageType)(0), // 2: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest.CoverageType 3893 (ListTestCasesRequest_TestCaseView)(0), // 3: google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest.TestCaseView 3894 (ExportTestCasesRequest_DataFormat)(0), // 4: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest.DataFormat 3895 (*TestCase)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.TestCase 3896 (*TestCaseResult)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.TestCaseResult 3897 (*TestConfig)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.TestConfig 3898 (*ConversationTurn)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.ConversationTurn 3899 (*TestRunDifference)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.TestRunDifference 3900 (*TransitionCoverage)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage 3901 (*TransitionRouteGroupCoverage)(nil), // 11: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage 3902 (*IntentCoverage)(nil), // 12: google.cloud.dialogflow.cx.v3beta1.IntentCoverage 3903 (*CalculateCoverageRequest)(nil), // 13: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest 3904 (*CalculateCoverageResponse)(nil), // 14: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse 3905 (*ListTestCasesRequest)(nil), // 15: google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest 3906 (*ListTestCasesResponse)(nil), // 16: google.cloud.dialogflow.cx.v3beta1.ListTestCasesResponse 3907 (*BatchDeleteTestCasesRequest)(nil), // 17: google.cloud.dialogflow.cx.v3beta1.BatchDeleteTestCasesRequest 3908 (*CreateTestCaseRequest)(nil), // 18: google.cloud.dialogflow.cx.v3beta1.CreateTestCaseRequest 3909 (*UpdateTestCaseRequest)(nil), // 19: google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest 3910 (*GetTestCaseRequest)(nil), // 20: google.cloud.dialogflow.cx.v3beta1.GetTestCaseRequest 3911 (*RunTestCaseRequest)(nil), // 21: google.cloud.dialogflow.cx.v3beta1.RunTestCaseRequest 3912 (*RunTestCaseResponse)(nil), // 22: google.cloud.dialogflow.cx.v3beta1.RunTestCaseResponse 3913 (*RunTestCaseMetadata)(nil), // 23: google.cloud.dialogflow.cx.v3beta1.RunTestCaseMetadata 3914 (*BatchRunTestCasesRequest)(nil), // 24: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesRequest 3915 (*BatchRunTestCasesResponse)(nil), // 25: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesResponse 3916 (*BatchRunTestCasesMetadata)(nil), // 26: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesMetadata 3917 (*TestError)(nil), // 27: google.cloud.dialogflow.cx.v3beta1.TestError 3918 (*ImportTestCasesRequest)(nil), // 28: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesRequest 3919 (*ImportTestCasesResponse)(nil), // 29: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesResponse 3920 (*ImportTestCasesMetadata)(nil), // 30: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesMetadata 3921 (*TestCaseError)(nil), // 31: google.cloud.dialogflow.cx.v3beta1.TestCaseError 3922 (*ExportTestCasesRequest)(nil), // 32: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest 3923 (*ExportTestCasesResponse)(nil), // 33: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesResponse 3924 (*ExportTestCasesMetadata)(nil), // 34: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesMetadata 3925 (*ListTestCaseResultsRequest)(nil), // 35: google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsRequest 3926 (*ListTestCaseResultsResponse)(nil), // 36: google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsResponse 3927 (*GetTestCaseResultRequest)(nil), // 37: google.cloud.dialogflow.cx.v3beta1.GetTestCaseResultRequest 3928 (*ConversationTurn_UserInput)(nil), // 38: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput 3929 (*ConversationTurn_VirtualAgentOutput)(nil), // 39: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput 3930 (*TransitionCoverage_TransitionNode)(nil), // 40: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode 3931 (*TransitionCoverage_Transition)(nil), // 41: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition 3932 (*TransitionRouteGroupCoverage_Coverage)(nil), // 42: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.Coverage 3933 (*TransitionRouteGroupCoverage_Coverage_Transition)(nil), // 43: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.Coverage.Transition 3934 (*IntentCoverage_Intent)(nil), // 44: google.cloud.dialogflow.cx.v3beta1.IntentCoverage.Intent 3935 (*timestamppb.Timestamp)(nil), // 45: google.protobuf.Timestamp 3936 (*fieldmaskpb.FieldMask)(nil), // 46: google.protobuf.FieldMask 3937 (*status.Status)(nil), // 47: google.rpc.Status 3938 (*QueryInput)(nil), // 48: google.cloud.dialogflow.cx.v3beta1.QueryInput 3939 (*structpb.Struct)(nil), // 49: google.protobuf.Struct 3940 (*Intent)(nil), // 50: google.cloud.dialogflow.cx.v3beta1.Intent 3941 (*Page)(nil), // 51: google.cloud.dialogflow.cx.v3beta1.Page 3942 (*ResponseMessage_Text)(nil), // 52: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Text 3943 (*Flow)(nil), // 53: google.cloud.dialogflow.cx.v3beta1.Flow 3944 (*TransitionRoute)(nil), // 54: google.cloud.dialogflow.cx.v3beta1.TransitionRoute 3945 (*EventHandler)(nil), // 55: google.cloud.dialogflow.cx.v3beta1.EventHandler 3946 (*TransitionRouteGroup)(nil), // 56: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup 3947 (*emptypb.Empty)(nil), // 57: google.protobuf.Empty 3948 (*longrunning.Operation)(nil), // 58: google.longrunning.Operation 3949} 3950var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_depIdxs = []int32{ 3951 7, // 0: google.cloud.dialogflow.cx.v3beta1.TestCase.test_config:type_name -> google.cloud.dialogflow.cx.v3beta1.TestConfig 3952 8, // 1: google.cloud.dialogflow.cx.v3beta1.TestCase.test_case_conversation_turns:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn 3953 45, // 2: google.cloud.dialogflow.cx.v3beta1.TestCase.creation_time:type_name -> google.protobuf.Timestamp 3954 6, // 3: google.cloud.dialogflow.cx.v3beta1.TestCase.last_test_result:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult 3955 8, // 4: google.cloud.dialogflow.cx.v3beta1.TestCaseResult.conversation_turns:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn 3956 0, // 5: google.cloud.dialogflow.cx.v3beta1.TestCaseResult.test_result:type_name -> google.cloud.dialogflow.cx.v3beta1.TestResult 3957 45, // 6: google.cloud.dialogflow.cx.v3beta1.TestCaseResult.test_time:type_name -> google.protobuf.Timestamp 3958 38, // 7: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.user_input:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput 3959 39, // 8: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.virtual_agent_output:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput 3960 1, // 9: google.cloud.dialogflow.cx.v3beta1.TestRunDifference.type:type_name -> google.cloud.dialogflow.cx.v3beta1.TestRunDifference.DiffType 3961 41, // 10: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.transitions:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition 3962 42, // 11: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.coverages:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.Coverage 3963 44, // 12: google.cloud.dialogflow.cx.v3beta1.IntentCoverage.intents:type_name -> google.cloud.dialogflow.cx.v3beta1.IntentCoverage.Intent 3964 2, // 13: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest.type:type_name -> google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest.CoverageType 3965 12, // 14: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse.intent_coverage:type_name -> google.cloud.dialogflow.cx.v3beta1.IntentCoverage 3966 10, // 15: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse.transition_coverage:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage 3967 11, // 16: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse.route_group_coverage:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage 3968 3, // 17: google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest.view:type_name -> google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest.TestCaseView 3969 5, // 18: google.cloud.dialogflow.cx.v3beta1.ListTestCasesResponse.test_cases:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase 3970 5, // 19: google.cloud.dialogflow.cx.v3beta1.CreateTestCaseRequest.test_case:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase 3971 5, // 20: google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest.test_case:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase 3972 46, // 21: google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest.update_mask:type_name -> google.protobuf.FieldMask 3973 6, // 22: google.cloud.dialogflow.cx.v3beta1.RunTestCaseResponse.result:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult 3974 6, // 23: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesResponse.results:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult 3975 27, // 24: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesMetadata.errors:type_name -> google.cloud.dialogflow.cx.v3beta1.TestError 3976 47, // 25: google.cloud.dialogflow.cx.v3beta1.TestError.status:type_name -> google.rpc.Status 3977 45, // 26: google.cloud.dialogflow.cx.v3beta1.TestError.test_time:type_name -> google.protobuf.Timestamp 3978 31, // 27: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesMetadata.errors:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseError 3979 5, // 28: google.cloud.dialogflow.cx.v3beta1.TestCaseError.test_case:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase 3980 47, // 29: google.cloud.dialogflow.cx.v3beta1.TestCaseError.status:type_name -> google.rpc.Status 3981 4, // 30: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest.data_format:type_name -> google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest.DataFormat 3982 6, // 31: google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsResponse.test_case_results:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult 3983 48, // 32: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput.input:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryInput 3984 49, // 33: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput.injected_parameters:type_name -> google.protobuf.Struct 3985 49, // 34: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.session_parameters:type_name -> google.protobuf.Struct 3986 9, // 35: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.differences:type_name -> google.cloud.dialogflow.cx.v3beta1.TestRunDifference 3987 49, // 36: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.diagnostic_info:type_name -> google.protobuf.Struct 3988 50, // 37: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.triggered_intent:type_name -> google.cloud.dialogflow.cx.v3beta1.Intent 3989 51, // 38: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.current_page:type_name -> google.cloud.dialogflow.cx.v3beta1.Page 3990 52, // 39: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.text_responses:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Text 3991 47, // 40: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.status:type_name -> google.rpc.Status 3992 51, // 41: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode.page:type_name -> google.cloud.dialogflow.cx.v3beta1.Page 3993 53, // 42: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode.flow:type_name -> google.cloud.dialogflow.cx.v3beta1.Flow 3994 40, // 43: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.source:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode 3995 40, // 44: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.target:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode 3996 54, // 45: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.transition_route:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRoute 3997 55, // 46: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.event_handler:type_name -> google.cloud.dialogflow.cx.v3beta1.EventHandler 3998 56, // 47: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.Coverage.route_group:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup 3999 43, // 48: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.Coverage.transitions:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.Coverage.Transition 4000 54, // 49: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupCoverage.Coverage.Transition.transition_route:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRoute 4001 15, // 50: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest 4002 17, // 51: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchDeleteTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.BatchDeleteTestCasesRequest 4003 20, // 52: google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.GetTestCaseRequest 4004 18, // 53: google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.CreateTestCaseRequest 4005 19, // 54: google.cloud.dialogflow.cx.v3beta1.TestCases.UpdateTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest 4006 21, // 55: google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.RunTestCaseRequest 4007 24, // 56: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesRequest 4008 13, // 57: google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage:input_type -> google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest 4009 28, // 58: google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.ImportTestCasesRequest 4010 32, // 59: google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest 4011 35, // 60: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults:input_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsRequest 4012 37, // 61: google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCaseResult:input_type -> google.cloud.dialogflow.cx.v3beta1.GetTestCaseResultRequest 4013 16, // 62: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases:output_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCasesResponse 4014 57, // 63: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchDeleteTestCases:output_type -> google.protobuf.Empty 4015 5, // 64: google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCase:output_type -> google.cloud.dialogflow.cx.v3beta1.TestCase 4016 5, // 65: google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase:output_type -> google.cloud.dialogflow.cx.v3beta1.TestCase 4017 5, // 66: google.cloud.dialogflow.cx.v3beta1.TestCases.UpdateTestCase:output_type -> google.cloud.dialogflow.cx.v3beta1.TestCase 4018 58, // 67: google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase:output_type -> google.longrunning.Operation 4019 58, // 68: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases:output_type -> google.longrunning.Operation 4020 14, // 69: google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage:output_type -> google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse 4021 58, // 70: google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases:output_type -> google.longrunning.Operation 4022 58, // 71: google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases:output_type -> google.longrunning.Operation 4023 36, // 72: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults:output_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsResponse 4024 6, // 73: google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCaseResult:output_type -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult 4025 62, // [62:74] is the sub-list for method output_type 4026 50, // [50:62] is the sub-list for method input_type 4027 50, // [50:50] is the sub-list for extension type_name 4028 50, // [50:50] is the sub-list for extension extendee 4029 0, // [0:50] is the sub-list for field type_name 4030} 4031 4032func init() { file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_init() } 4033func file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_init() { 4034 if File_google_cloud_dialogflow_cx_v3beta1_test_case_proto != nil { 4035 return 4036 } 4037 file_google_cloud_dialogflow_cx_v3beta1_flow_proto_init() 4038 file_google_cloud_dialogflow_cx_v3beta1_intent_proto_init() 4039 file_google_cloud_dialogflow_cx_v3beta1_page_proto_init() 4040 file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_init() 4041 file_google_cloud_dialogflow_cx_v3beta1_session_proto_init() 4042 file_google_cloud_dialogflow_cx_v3beta1_transition_route_group_proto_init() 4043 if !protoimpl.UnsafeEnabled { 4044 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4045 switch v := v.(*TestCase); i { 4046 case 0: 4047 return &v.state 4048 case 1: 4049 return &v.sizeCache 4050 case 2: 4051 return &v.unknownFields 4052 default: 4053 return nil 4054 } 4055 } 4056 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4057 switch v := v.(*TestCaseResult); i { 4058 case 0: 4059 return &v.state 4060 case 1: 4061 return &v.sizeCache 4062 case 2: 4063 return &v.unknownFields 4064 default: 4065 return nil 4066 } 4067 } 4068 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4069 switch v := v.(*TestConfig); i { 4070 case 0: 4071 return &v.state 4072 case 1: 4073 return &v.sizeCache 4074 case 2: 4075 return &v.unknownFields 4076 default: 4077 return nil 4078 } 4079 } 4080 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4081 switch v := v.(*ConversationTurn); i { 4082 case 0: 4083 return &v.state 4084 case 1: 4085 return &v.sizeCache 4086 case 2: 4087 return &v.unknownFields 4088 default: 4089 return nil 4090 } 4091 } 4092 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4093 switch v := v.(*TestRunDifference); i { 4094 case 0: 4095 return &v.state 4096 case 1: 4097 return &v.sizeCache 4098 case 2: 4099 return &v.unknownFields 4100 default: 4101 return nil 4102 } 4103 } 4104 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4105 switch v := v.(*TransitionCoverage); i { 4106 case 0: 4107 return &v.state 4108 case 1: 4109 return &v.sizeCache 4110 case 2: 4111 return &v.unknownFields 4112 default: 4113 return nil 4114 } 4115 } 4116 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4117 switch v := v.(*TransitionRouteGroupCoverage); i { 4118 case 0: 4119 return &v.state 4120 case 1: 4121 return &v.sizeCache 4122 case 2: 4123 return &v.unknownFields 4124 default: 4125 return nil 4126 } 4127 } 4128 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4129 switch v := v.(*IntentCoverage); i { 4130 case 0: 4131 return &v.state 4132 case 1: 4133 return &v.sizeCache 4134 case 2: 4135 return &v.unknownFields 4136 default: 4137 return nil 4138 } 4139 } 4140 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4141 switch v := v.(*CalculateCoverageRequest); i { 4142 case 0: 4143 return &v.state 4144 case 1: 4145 return &v.sizeCache 4146 case 2: 4147 return &v.unknownFields 4148 default: 4149 return nil 4150 } 4151 } 4152 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4153 switch v := v.(*CalculateCoverageResponse); i { 4154 case 0: 4155 return &v.state 4156 case 1: 4157 return &v.sizeCache 4158 case 2: 4159 return &v.unknownFields 4160 default: 4161 return nil 4162 } 4163 } 4164 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4165 switch v := v.(*ListTestCasesRequest); i { 4166 case 0: 4167 return &v.state 4168 case 1: 4169 return &v.sizeCache 4170 case 2: 4171 return &v.unknownFields 4172 default: 4173 return nil 4174 } 4175 } 4176 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4177 switch v := v.(*ListTestCasesResponse); i { 4178 case 0: 4179 return &v.state 4180 case 1: 4181 return &v.sizeCache 4182 case 2: 4183 return &v.unknownFields 4184 default: 4185 return nil 4186 } 4187 } 4188 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4189 switch v := v.(*BatchDeleteTestCasesRequest); i { 4190 case 0: 4191 return &v.state 4192 case 1: 4193 return &v.sizeCache 4194 case 2: 4195 return &v.unknownFields 4196 default: 4197 return nil 4198 } 4199 } 4200 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4201 switch v := v.(*CreateTestCaseRequest); i { 4202 case 0: 4203 return &v.state 4204 case 1: 4205 return &v.sizeCache 4206 case 2: 4207 return &v.unknownFields 4208 default: 4209 return nil 4210 } 4211 } 4212 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4213 switch v := v.(*UpdateTestCaseRequest); i { 4214 case 0: 4215 return &v.state 4216 case 1: 4217 return &v.sizeCache 4218 case 2: 4219 return &v.unknownFields 4220 default: 4221 return nil 4222 } 4223 } 4224 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4225 switch v := v.(*GetTestCaseRequest); i { 4226 case 0: 4227 return &v.state 4228 case 1: 4229 return &v.sizeCache 4230 case 2: 4231 return &v.unknownFields 4232 default: 4233 return nil 4234 } 4235 } 4236 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4237 switch v := v.(*RunTestCaseRequest); i { 4238 case 0: 4239 return &v.state 4240 case 1: 4241 return &v.sizeCache 4242 case 2: 4243 return &v.unknownFields 4244 default: 4245 return nil 4246 } 4247 } 4248 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4249 switch v := v.(*RunTestCaseResponse); i { 4250 case 0: 4251 return &v.state 4252 case 1: 4253 return &v.sizeCache 4254 case 2: 4255 return &v.unknownFields 4256 default: 4257 return nil 4258 } 4259 } 4260 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4261 switch v := v.(*RunTestCaseMetadata); i { 4262 case 0: 4263 return &v.state 4264 case 1: 4265 return &v.sizeCache 4266 case 2: 4267 return &v.unknownFields 4268 default: 4269 return nil 4270 } 4271 } 4272 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4273 switch v := v.(*BatchRunTestCasesRequest); i { 4274 case 0: 4275 return &v.state 4276 case 1: 4277 return &v.sizeCache 4278 case 2: 4279 return &v.unknownFields 4280 default: 4281 return nil 4282 } 4283 } 4284 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4285 switch v := v.(*BatchRunTestCasesResponse); i { 4286 case 0: 4287 return &v.state 4288 case 1: 4289 return &v.sizeCache 4290 case 2: 4291 return &v.unknownFields 4292 default: 4293 return nil 4294 } 4295 } 4296 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4297 switch v := v.(*BatchRunTestCasesMetadata); i { 4298 case 0: 4299 return &v.state 4300 case 1: 4301 return &v.sizeCache 4302 case 2: 4303 return &v.unknownFields 4304 default: 4305 return nil 4306 } 4307 } 4308 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4309 switch v := v.(*TestError); i { 4310 case 0: 4311 return &v.state 4312 case 1: 4313 return &v.sizeCache 4314 case 2: 4315 return &v.unknownFields 4316 default: 4317 return nil 4318 } 4319 } 4320 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4321 switch v := v.(*ImportTestCasesRequest); i { 4322 case 0: 4323 return &v.state 4324 case 1: 4325 return &v.sizeCache 4326 case 2: 4327 return &v.unknownFields 4328 default: 4329 return nil 4330 } 4331 } 4332 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 4333 switch v := v.(*ImportTestCasesResponse); i { 4334 case 0: 4335 return &v.state 4336 case 1: 4337 return &v.sizeCache 4338 case 2: 4339 return &v.unknownFields 4340 default: 4341 return nil 4342 } 4343 } 4344 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 4345 switch v := v.(*ImportTestCasesMetadata); i { 4346 case 0: 4347 return &v.state 4348 case 1: 4349 return &v.sizeCache 4350 case 2: 4351 return &v.unknownFields 4352 default: 4353 return nil 4354 } 4355 } 4356 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 4357 switch v := v.(*TestCaseError); i { 4358 case 0: 4359 return &v.state 4360 case 1: 4361 return &v.sizeCache 4362 case 2: 4363 return &v.unknownFields 4364 default: 4365 return nil 4366 } 4367 } 4368 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 4369 switch v := v.(*ExportTestCasesRequest); i { 4370 case 0: 4371 return &v.state 4372 case 1: 4373 return &v.sizeCache 4374 case 2: 4375 return &v.unknownFields 4376 default: 4377 return nil 4378 } 4379 } 4380 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4381 switch v := v.(*ExportTestCasesResponse); i { 4382 case 0: 4383 return &v.state 4384 case 1: 4385 return &v.sizeCache 4386 case 2: 4387 return &v.unknownFields 4388 default: 4389 return nil 4390 } 4391 } 4392 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 4393 switch v := v.(*ExportTestCasesMetadata); i { 4394 case 0: 4395 return &v.state 4396 case 1: 4397 return &v.sizeCache 4398 case 2: 4399 return &v.unknownFields 4400 default: 4401 return nil 4402 } 4403 } 4404 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4405 switch v := v.(*ListTestCaseResultsRequest); i { 4406 case 0: 4407 return &v.state 4408 case 1: 4409 return &v.sizeCache 4410 case 2: 4411 return &v.unknownFields 4412 default: 4413 return nil 4414 } 4415 } 4416 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 4417 switch v := v.(*ListTestCaseResultsResponse); i { 4418 case 0: 4419 return &v.state 4420 case 1: 4421 return &v.sizeCache 4422 case 2: 4423 return &v.unknownFields 4424 default: 4425 return nil 4426 } 4427 } 4428 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 4429 switch v := v.(*GetTestCaseResultRequest); i { 4430 case 0: 4431 return &v.state 4432 case 1: 4433 return &v.sizeCache 4434 case 2: 4435 return &v.unknownFields 4436 default: 4437 return nil 4438 } 4439 } 4440 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 4441 switch v := v.(*ConversationTurn_UserInput); i { 4442 case 0: 4443 return &v.state 4444 case 1: 4445 return &v.sizeCache 4446 case 2: 4447 return &v.unknownFields 4448 default: 4449 return nil 4450 } 4451 } 4452 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 4453 switch v := v.(*ConversationTurn_VirtualAgentOutput); i { 4454 case 0: 4455 return &v.state 4456 case 1: 4457 return &v.sizeCache 4458 case 2: 4459 return &v.unknownFields 4460 default: 4461 return nil 4462 } 4463 } 4464 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4465 switch v := v.(*TransitionCoverage_TransitionNode); i { 4466 case 0: 4467 return &v.state 4468 case 1: 4469 return &v.sizeCache 4470 case 2: 4471 return &v.unknownFields 4472 default: 4473 return nil 4474 } 4475 } 4476 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 4477 switch v := v.(*TransitionCoverage_Transition); i { 4478 case 0: 4479 return &v.state 4480 case 1: 4481 return &v.sizeCache 4482 case 2: 4483 return &v.unknownFields 4484 default: 4485 return nil 4486 } 4487 } 4488 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 4489 switch v := v.(*TransitionRouteGroupCoverage_Coverage); i { 4490 case 0: 4491 return &v.state 4492 case 1: 4493 return &v.sizeCache 4494 case 2: 4495 return &v.unknownFields 4496 default: 4497 return nil 4498 } 4499 } 4500 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 4501 switch v := v.(*TransitionRouteGroupCoverage_Coverage_Transition); i { 4502 case 0: 4503 return &v.state 4504 case 1: 4505 return &v.sizeCache 4506 case 2: 4507 return &v.unknownFields 4508 default: 4509 return nil 4510 } 4511 } 4512 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 4513 switch v := v.(*IntentCoverage_Intent); i { 4514 case 0: 4515 return &v.state 4516 case 1: 4517 return &v.sizeCache 4518 case 2: 4519 return &v.unknownFields 4520 default: 4521 return nil 4522 } 4523 } 4524 } 4525 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[9].OneofWrappers = []interface{}{ 4526 (*CalculateCoverageResponse_IntentCoverage)(nil), 4527 (*CalculateCoverageResponse_TransitionCoverage)(nil), 4528 (*CalculateCoverageResponse_RouteGroupCoverage)(nil), 4529 } 4530 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[23].OneofWrappers = []interface{}{ 4531 (*ImportTestCasesRequest_GcsUri)(nil), 4532 (*ImportTestCasesRequest_Content)(nil), 4533 } 4534 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[27].OneofWrappers = []interface{}{ 4535 (*ExportTestCasesRequest_GcsUri)(nil), 4536 } 4537 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[28].OneofWrappers = []interface{}{ 4538 (*ExportTestCasesResponse_GcsUri)(nil), 4539 (*ExportTestCasesResponse_Content)(nil), 4540 } 4541 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[35].OneofWrappers = []interface{}{ 4542 (*TransitionCoverage_TransitionNode_Page)(nil), 4543 (*TransitionCoverage_TransitionNode_Flow)(nil), 4544 } 4545 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[36].OneofWrappers = []interface{}{ 4546 (*TransitionCoverage_Transition_TransitionRoute)(nil), 4547 (*TransitionCoverage_Transition_EventHandler)(nil), 4548 } 4549 type x struct{} 4550 out := protoimpl.TypeBuilder{ 4551 File: protoimpl.DescBuilder{ 4552 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4553 RawDescriptor: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc, 4554 NumEnums: 5, 4555 NumMessages: 40, 4556 NumExtensions: 0, 4557 NumServices: 1, 4558 }, 4559 GoTypes: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_goTypes, 4560 DependencyIndexes: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_depIdxs, 4561 EnumInfos: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes, 4562 MessageInfos: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes, 4563 }.Build() 4564 File_google_cloud_dialogflow_cx_v3beta1_test_case_proto = out.File 4565 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc = nil 4566 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_goTypes = nil 4567 file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_depIdxs = nil 4568} 4569 4570// Reference imports to suppress errors if they are not otherwise used. 4571var _ context.Context 4572var _ grpc.ClientConnInterface 4573 4574// This is a compile-time assertion to ensure that this generated file 4575// is compatible with the grpc package it is being compiled against. 4576const _ = grpc.SupportPackageIsVersion6 4577 4578// TestCasesClient is the client API for TestCases service. 4579// 4580// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 4581type TestCasesClient interface { 4582 // Fetches a list of test cases for a given agent. 4583 ListTestCases(ctx context.Context, in *ListTestCasesRequest, opts ...grpc.CallOption) (*ListTestCasesResponse, error) 4584 // Batch deletes test cases. 4585 BatchDeleteTestCases(ctx context.Context, in *BatchDeleteTestCasesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 4586 // Gets a test case. 4587 GetTestCase(ctx context.Context, in *GetTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) 4588 // Creates a test case for the given agent. 4589 CreateTestCase(ctx context.Context, in *CreateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) 4590 // Updates the specified test case. 4591 UpdateTestCase(ctx context.Context, in *UpdateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) 4592 // Kicks off a test case run. 4593 // 4594 // This method is a [long-running 4595 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4596 // The returned `Operation` type has the following method-specific fields: 4597 // 4598 // - `metadata`: [RunTestCaseMetadata][google.cloud.dialogflow.cx.v3beta1.RunTestCaseMetadata] 4599 // - `response`: [RunTestCaseResponse][google.cloud.dialogflow.cx.v3beta1.RunTestCaseResponse] 4600 RunTestCase(ctx context.Context, in *RunTestCaseRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4601 // Kicks off a batch run of test cases. 4602 // 4603 // This method is a [long-running 4604 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4605 // The returned `Operation` type has the following method-specific fields: 4606 // 4607 // - `metadata`: [BatchRunTestCasesMetadata][google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesMetadata] 4608 // - `response`: [BatchRunTestCasesResponse][google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesResponse] 4609 BatchRunTestCases(ctx context.Context, in *BatchRunTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4610 // Calculates the test coverage for an agent. 4611 CalculateCoverage(ctx context.Context, in *CalculateCoverageRequest, opts ...grpc.CallOption) (*CalculateCoverageResponse, error) 4612 // Imports the test cases from a Cloud Storage bucket or a local file. It 4613 // always creates new test cases and won't overwite any existing ones. The 4614 // provided ID in the imported test case is neglected. 4615 // 4616 // This method is a [long-running 4617 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4618 // The returned `Operation` type has the following method-specific fields: 4619 // 4620 // - `metadata`: [ImportTestCasesMetadata][google.cloud.dialogflow.cx.v3beta1.ImportTestCasesMetadata] 4621 // - `response`: [ImportTestCasesResponse][google.cloud.dialogflow.cx.v3beta1.ImportTestCasesResponse] 4622 ImportTestCases(ctx context.Context, in *ImportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4623 // Exports the test cases under the agent to a Cloud Storage bucket or a local 4624 // file. Filter can be applied to export a subset of test cases. 4625 // 4626 // This method is a [long-running 4627 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4628 // The returned `Operation` type has the following method-specific fields: 4629 // 4630 // - `metadata`: [ExportTestCasesMetadata][google.cloud.dialogflow.cx.v3beta1.ExportTestCasesMetadata] 4631 // - `response`: [ExportTestCasesResponse][google.cloud.dialogflow.cx.v3beta1.ExportTestCasesResponse] 4632 ExportTestCases(ctx context.Context, in *ExportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4633 // Fetches a list of results for a given test case. 4634 ListTestCaseResults(ctx context.Context, in *ListTestCaseResultsRequest, opts ...grpc.CallOption) (*ListTestCaseResultsResponse, error) 4635 // Gets a test case result. 4636 GetTestCaseResult(ctx context.Context, in *GetTestCaseResultRequest, opts ...grpc.CallOption) (*TestCaseResult, error) 4637} 4638 4639type testCasesClient struct { 4640 cc grpc.ClientConnInterface 4641} 4642 4643func NewTestCasesClient(cc grpc.ClientConnInterface) TestCasesClient { 4644 return &testCasesClient{cc} 4645} 4646 4647func (c *testCasesClient) ListTestCases(ctx context.Context, in *ListTestCasesRequest, opts ...grpc.CallOption) (*ListTestCasesResponse, error) { 4648 out := new(ListTestCasesResponse) 4649 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCases", in, out, opts...) 4650 if err != nil { 4651 return nil, err 4652 } 4653 return out, nil 4654} 4655 4656func (c *testCasesClient) BatchDeleteTestCases(ctx context.Context, in *BatchDeleteTestCasesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 4657 out := new(emptypb.Empty) 4658 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchDeleteTestCases", in, out, opts...) 4659 if err != nil { 4660 return nil, err 4661 } 4662 return out, nil 4663} 4664 4665func (c *testCasesClient) GetTestCase(ctx context.Context, in *GetTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { 4666 out := new(TestCase) 4667 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/GetTestCase", in, out, opts...) 4668 if err != nil { 4669 return nil, err 4670 } 4671 return out, nil 4672} 4673 4674func (c *testCasesClient) CreateTestCase(ctx context.Context, in *CreateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { 4675 out := new(TestCase) 4676 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/CreateTestCase", in, out, opts...) 4677 if err != nil { 4678 return nil, err 4679 } 4680 return out, nil 4681} 4682 4683func (c *testCasesClient) UpdateTestCase(ctx context.Context, in *UpdateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { 4684 out := new(TestCase) 4685 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/UpdateTestCase", in, out, opts...) 4686 if err != nil { 4687 return nil, err 4688 } 4689 return out, nil 4690} 4691 4692func (c *testCasesClient) RunTestCase(ctx context.Context, in *RunTestCaseRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4693 out := new(longrunning.Operation) 4694 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/RunTestCase", in, out, opts...) 4695 if err != nil { 4696 return nil, err 4697 } 4698 return out, nil 4699} 4700 4701func (c *testCasesClient) BatchRunTestCases(ctx context.Context, in *BatchRunTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4702 out := new(longrunning.Operation) 4703 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchRunTestCases", in, out, opts...) 4704 if err != nil { 4705 return nil, err 4706 } 4707 return out, nil 4708} 4709 4710func (c *testCasesClient) CalculateCoverage(ctx context.Context, in *CalculateCoverageRequest, opts ...grpc.CallOption) (*CalculateCoverageResponse, error) { 4711 out := new(CalculateCoverageResponse) 4712 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/CalculateCoverage", in, out, opts...) 4713 if err != nil { 4714 return nil, err 4715 } 4716 return out, nil 4717} 4718 4719func (c *testCasesClient) ImportTestCases(ctx context.Context, in *ImportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4720 out := new(longrunning.Operation) 4721 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ImportTestCases", in, out, opts...) 4722 if err != nil { 4723 return nil, err 4724 } 4725 return out, nil 4726} 4727 4728func (c *testCasesClient) ExportTestCases(ctx context.Context, in *ExportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4729 out := new(longrunning.Operation) 4730 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ExportTestCases", in, out, opts...) 4731 if err != nil { 4732 return nil, err 4733 } 4734 return out, nil 4735} 4736 4737func (c *testCasesClient) ListTestCaseResults(ctx context.Context, in *ListTestCaseResultsRequest, opts ...grpc.CallOption) (*ListTestCaseResultsResponse, error) { 4738 out := new(ListTestCaseResultsResponse) 4739 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCaseResults", in, out, opts...) 4740 if err != nil { 4741 return nil, err 4742 } 4743 return out, nil 4744} 4745 4746func (c *testCasesClient) GetTestCaseResult(ctx context.Context, in *GetTestCaseResultRequest, opts ...grpc.CallOption) (*TestCaseResult, error) { 4747 out := new(TestCaseResult) 4748 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/GetTestCaseResult", in, out, opts...) 4749 if err != nil { 4750 return nil, err 4751 } 4752 return out, nil 4753} 4754 4755// TestCasesServer is the server API for TestCases service. 4756type TestCasesServer interface { 4757 // Fetches a list of test cases for a given agent. 4758 ListTestCases(context.Context, *ListTestCasesRequest) (*ListTestCasesResponse, error) 4759 // Batch deletes test cases. 4760 BatchDeleteTestCases(context.Context, *BatchDeleteTestCasesRequest) (*emptypb.Empty, error) 4761 // Gets a test case. 4762 GetTestCase(context.Context, *GetTestCaseRequest) (*TestCase, error) 4763 // Creates a test case for the given agent. 4764 CreateTestCase(context.Context, *CreateTestCaseRequest) (*TestCase, error) 4765 // Updates the specified test case. 4766 UpdateTestCase(context.Context, *UpdateTestCaseRequest) (*TestCase, error) 4767 // Kicks off a test case run. 4768 // 4769 // This method is a [long-running 4770 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4771 // The returned `Operation` type has the following method-specific fields: 4772 // 4773 // - `metadata`: [RunTestCaseMetadata][google.cloud.dialogflow.cx.v3beta1.RunTestCaseMetadata] 4774 // - `response`: [RunTestCaseResponse][google.cloud.dialogflow.cx.v3beta1.RunTestCaseResponse] 4775 RunTestCase(context.Context, *RunTestCaseRequest) (*longrunning.Operation, error) 4776 // Kicks off a batch run of test cases. 4777 // 4778 // This method is a [long-running 4779 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4780 // The returned `Operation` type has the following method-specific fields: 4781 // 4782 // - `metadata`: [BatchRunTestCasesMetadata][google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesMetadata] 4783 // - `response`: [BatchRunTestCasesResponse][google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesResponse] 4784 BatchRunTestCases(context.Context, *BatchRunTestCasesRequest) (*longrunning.Operation, error) 4785 // Calculates the test coverage for an agent. 4786 CalculateCoverage(context.Context, *CalculateCoverageRequest) (*CalculateCoverageResponse, error) 4787 // Imports the test cases from a Cloud Storage bucket or a local file. It 4788 // always creates new test cases and won't overwite any existing ones. The 4789 // provided ID in the imported test case is neglected. 4790 // 4791 // This method is a [long-running 4792 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4793 // The returned `Operation` type has the following method-specific fields: 4794 // 4795 // - `metadata`: [ImportTestCasesMetadata][google.cloud.dialogflow.cx.v3beta1.ImportTestCasesMetadata] 4796 // - `response`: [ImportTestCasesResponse][google.cloud.dialogflow.cx.v3beta1.ImportTestCasesResponse] 4797 ImportTestCases(context.Context, *ImportTestCasesRequest) (*longrunning.Operation, error) 4798 // Exports the test cases under the agent to a Cloud Storage bucket or a local 4799 // file. Filter can be applied to export a subset of test cases. 4800 // 4801 // This method is a [long-running 4802 // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). 4803 // The returned `Operation` type has the following method-specific fields: 4804 // 4805 // - `metadata`: [ExportTestCasesMetadata][google.cloud.dialogflow.cx.v3beta1.ExportTestCasesMetadata] 4806 // - `response`: [ExportTestCasesResponse][google.cloud.dialogflow.cx.v3beta1.ExportTestCasesResponse] 4807 ExportTestCases(context.Context, *ExportTestCasesRequest) (*longrunning.Operation, error) 4808 // Fetches a list of results for a given test case. 4809 ListTestCaseResults(context.Context, *ListTestCaseResultsRequest) (*ListTestCaseResultsResponse, error) 4810 // Gets a test case result. 4811 GetTestCaseResult(context.Context, *GetTestCaseResultRequest) (*TestCaseResult, error) 4812} 4813 4814// UnimplementedTestCasesServer can be embedded to have forward compatible implementations. 4815type UnimplementedTestCasesServer struct { 4816} 4817 4818func (*UnimplementedTestCasesServer) ListTestCases(context.Context, *ListTestCasesRequest) (*ListTestCasesResponse, error) { 4819 return nil, status1.Errorf(codes.Unimplemented, "method ListTestCases not implemented") 4820} 4821func (*UnimplementedTestCasesServer) BatchDeleteTestCases(context.Context, *BatchDeleteTestCasesRequest) (*emptypb.Empty, error) { 4822 return nil, status1.Errorf(codes.Unimplemented, "method BatchDeleteTestCases not implemented") 4823} 4824func (*UnimplementedTestCasesServer) GetTestCase(context.Context, *GetTestCaseRequest) (*TestCase, error) { 4825 return nil, status1.Errorf(codes.Unimplemented, "method GetTestCase not implemented") 4826} 4827func (*UnimplementedTestCasesServer) CreateTestCase(context.Context, *CreateTestCaseRequest) (*TestCase, error) { 4828 return nil, status1.Errorf(codes.Unimplemented, "method CreateTestCase not implemented") 4829} 4830func (*UnimplementedTestCasesServer) UpdateTestCase(context.Context, *UpdateTestCaseRequest) (*TestCase, error) { 4831 return nil, status1.Errorf(codes.Unimplemented, "method UpdateTestCase not implemented") 4832} 4833func (*UnimplementedTestCasesServer) RunTestCase(context.Context, *RunTestCaseRequest) (*longrunning.Operation, error) { 4834 return nil, status1.Errorf(codes.Unimplemented, "method RunTestCase not implemented") 4835} 4836func (*UnimplementedTestCasesServer) BatchRunTestCases(context.Context, *BatchRunTestCasesRequest) (*longrunning.Operation, error) { 4837 return nil, status1.Errorf(codes.Unimplemented, "method BatchRunTestCases not implemented") 4838} 4839func (*UnimplementedTestCasesServer) CalculateCoverage(context.Context, *CalculateCoverageRequest) (*CalculateCoverageResponse, error) { 4840 return nil, status1.Errorf(codes.Unimplemented, "method CalculateCoverage not implemented") 4841} 4842func (*UnimplementedTestCasesServer) ImportTestCases(context.Context, *ImportTestCasesRequest) (*longrunning.Operation, error) { 4843 return nil, status1.Errorf(codes.Unimplemented, "method ImportTestCases not implemented") 4844} 4845func (*UnimplementedTestCasesServer) ExportTestCases(context.Context, *ExportTestCasesRequest) (*longrunning.Operation, error) { 4846 return nil, status1.Errorf(codes.Unimplemented, "method ExportTestCases not implemented") 4847} 4848func (*UnimplementedTestCasesServer) ListTestCaseResults(context.Context, *ListTestCaseResultsRequest) (*ListTestCaseResultsResponse, error) { 4849 return nil, status1.Errorf(codes.Unimplemented, "method ListTestCaseResults not implemented") 4850} 4851func (*UnimplementedTestCasesServer) GetTestCaseResult(context.Context, *GetTestCaseResultRequest) (*TestCaseResult, error) { 4852 return nil, status1.Errorf(codes.Unimplemented, "method GetTestCaseResult not implemented") 4853} 4854 4855func RegisterTestCasesServer(s *grpc.Server, srv TestCasesServer) { 4856 s.RegisterService(&_TestCases_serviceDesc, srv) 4857} 4858 4859func _TestCases_ListTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4860 in := new(ListTestCasesRequest) 4861 if err := dec(in); err != nil { 4862 return nil, err 4863 } 4864 if interceptor == nil { 4865 return srv.(TestCasesServer).ListTestCases(ctx, in) 4866 } 4867 info := &grpc.UnaryServerInfo{ 4868 Server: srv, 4869 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCases", 4870 } 4871 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4872 return srv.(TestCasesServer).ListTestCases(ctx, req.(*ListTestCasesRequest)) 4873 } 4874 return interceptor(ctx, in, info, handler) 4875} 4876 4877func _TestCases_BatchDeleteTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4878 in := new(BatchDeleteTestCasesRequest) 4879 if err := dec(in); err != nil { 4880 return nil, err 4881 } 4882 if interceptor == nil { 4883 return srv.(TestCasesServer).BatchDeleteTestCases(ctx, in) 4884 } 4885 info := &grpc.UnaryServerInfo{ 4886 Server: srv, 4887 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchDeleteTestCases", 4888 } 4889 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4890 return srv.(TestCasesServer).BatchDeleteTestCases(ctx, req.(*BatchDeleteTestCasesRequest)) 4891 } 4892 return interceptor(ctx, in, info, handler) 4893} 4894 4895func _TestCases_GetTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4896 in := new(GetTestCaseRequest) 4897 if err := dec(in); err != nil { 4898 return nil, err 4899 } 4900 if interceptor == nil { 4901 return srv.(TestCasesServer).GetTestCase(ctx, in) 4902 } 4903 info := &grpc.UnaryServerInfo{ 4904 Server: srv, 4905 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/GetTestCase", 4906 } 4907 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4908 return srv.(TestCasesServer).GetTestCase(ctx, req.(*GetTestCaseRequest)) 4909 } 4910 return interceptor(ctx, in, info, handler) 4911} 4912 4913func _TestCases_CreateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4914 in := new(CreateTestCaseRequest) 4915 if err := dec(in); err != nil { 4916 return nil, err 4917 } 4918 if interceptor == nil { 4919 return srv.(TestCasesServer).CreateTestCase(ctx, in) 4920 } 4921 info := &grpc.UnaryServerInfo{ 4922 Server: srv, 4923 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/CreateTestCase", 4924 } 4925 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4926 return srv.(TestCasesServer).CreateTestCase(ctx, req.(*CreateTestCaseRequest)) 4927 } 4928 return interceptor(ctx, in, info, handler) 4929} 4930 4931func _TestCases_UpdateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4932 in := new(UpdateTestCaseRequest) 4933 if err := dec(in); err != nil { 4934 return nil, err 4935 } 4936 if interceptor == nil { 4937 return srv.(TestCasesServer).UpdateTestCase(ctx, in) 4938 } 4939 info := &grpc.UnaryServerInfo{ 4940 Server: srv, 4941 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/UpdateTestCase", 4942 } 4943 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4944 return srv.(TestCasesServer).UpdateTestCase(ctx, req.(*UpdateTestCaseRequest)) 4945 } 4946 return interceptor(ctx, in, info, handler) 4947} 4948 4949func _TestCases_RunTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4950 in := new(RunTestCaseRequest) 4951 if err := dec(in); err != nil { 4952 return nil, err 4953 } 4954 if interceptor == nil { 4955 return srv.(TestCasesServer).RunTestCase(ctx, in) 4956 } 4957 info := &grpc.UnaryServerInfo{ 4958 Server: srv, 4959 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/RunTestCase", 4960 } 4961 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4962 return srv.(TestCasesServer).RunTestCase(ctx, req.(*RunTestCaseRequest)) 4963 } 4964 return interceptor(ctx, in, info, handler) 4965} 4966 4967func _TestCases_BatchRunTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4968 in := new(BatchRunTestCasesRequest) 4969 if err := dec(in); err != nil { 4970 return nil, err 4971 } 4972 if interceptor == nil { 4973 return srv.(TestCasesServer).BatchRunTestCases(ctx, in) 4974 } 4975 info := &grpc.UnaryServerInfo{ 4976 Server: srv, 4977 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchRunTestCases", 4978 } 4979 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4980 return srv.(TestCasesServer).BatchRunTestCases(ctx, req.(*BatchRunTestCasesRequest)) 4981 } 4982 return interceptor(ctx, in, info, handler) 4983} 4984 4985func _TestCases_CalculateCoverage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4986 in := new(CalculateCoverageRequest) 4987 if err := dec(in); err != nil { 4988 return nil, err 4989 } 4990 if interceptor == nil { 4991 return srv.(TestCasesServer).CalculateCoverage(ctx, in) 4992 } 4993 info := &grpc.UnaryServerInfo{ 4994 Server: srv, 4995 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/CalculateCoverage", 4996 } 4997 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4998 return srv.(TestCasesServer).CalculateCoverage(ctx, req.(*CalculateCoverageRequest)) 4999 } 5000 return interceptor(ctx, in, info, handler) 5001} 5002 5003func _TestCases_ImportTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5004 in := new(ImportTestCasesRequest) 5005 if err := dec(in); err != nil { 5006 return nil, err 5007 } 5008 if interceptor == nil { 5009 return srv.(TestCasesServer).ImportTestCases(ctx, in) 5010 } 5011 info := &grpc.UnaryServerInfo{ 5012 Server: srv, 5013 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ImportTestCases", 5014 } 5015 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5016 return srv.(TestCasesServer).ImportTestCases(ctx, req.(*ImportTestCasesRequest)) 5017 } 5018 return interceptor(ctx, in, info, handler) 5019} 5020 5021func _TestCases_ExportTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5022 in := new(ExportTestCasesRequest) 5023 if err := dec(in); err != nil { 5024 return nil, err 5025 } 5026 if interceptor == nil { 5027 return srv.(TestCasesServer).ExportTestCases(ctx, in) 5028 } 5029 info := &grpc.UnaryServerInfo{ 5030 Server: srv, 5031 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ExportTestCases", 5032 } 5033 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5034 return srv.(TestCasesServer).ExportTestCases(ctx, req.(*ExportTestCasesRequest)) 5035 } 5036 return interceptor(ctx, in, info, handler) 5037} 5038 5039func _TestCases_ListTestCaseResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5040 in := new(ListTestCaseResultsRequest) 5041 if err := dec(in); err != nil { 5042 return nil, err 5043 } 5044 if interceptor == nil { 5045 return srv.(TestCasesServer).ListTestCaseResults(ctx, in) 5046 } 5047 info := &grpc.UnaryServerInfo{ 5048 Server: srv, 5049 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCaseResults", 5050 } 5051 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5052 return srv.(TestCasesServer).ListTestCaseResults(ctx, req.(*ListTestCaseResultsRequest)) 5053 } 5054 return interceptor(ctx, in, info, handler) 5055} 5056 5057func _TestCases_GetTestCaseResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5058 in := new(GetTestCaseResultRequest) 5059 if err := dec(in); err != nil { 5060 return nil, err 5061 } 5062 if interceptor == nil { 5063 return srv.(TestCasesServer).GetTestCaseResult(ctx, in) 5064 } 5065 info := &grpc.UnaryServerInfo{ 5066 Server: srv, 5067 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/GetTestCaseResult", 5068 } 5069 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5070 return srv.(TestCasesServer).GetTestCaseResult(ctx, req.(*GetTestCaseResultRequest)) 5071 } 5072 return interceptor(ctx, in, info, handler) 5073} 5074 5075var _TestCases_serviceDesc = grpc.ServiceDesc{ 5076 ServiceName: "google.cloud.dialogflow.cx.v3beta1.TestCases", 5077 HandlerType: (*TestCasesServer)(nil), 5078 Methods: []grpc.MethodDesc{ 5079 { 5080 MethodName: "ListTestCases", 5081 Handler: _TestCases_ListTestCases_Handler, 5082 }, 5083 { 5084 MethodName: "BatchDeleteTestCases", 5085 Handler: _TestCases_BatchDeleteTestCases_Handler, 5086 }, 5087 { 5088 MethodName: "GetTestCase", 5089 Handler: _TestCases_GetTestCase_Handler, 5090 }, 5091 { 5092 MethodName: "CreateTestCase", 5093 Handler: _TestCases_CreateTestCase_Handler, 5094 }, 5095 { 5096 MethodName: "UpdateTestCase", 5097 Handler: _TestCases_UpdateTestCase_Handler, 5098 }, 5099 { 5100 MethodName: "RunTestCase", 5101 Handler: _TestCases_RunTestCase_Handler, 5102 }, 5103 { 5104 MethodName: "BatchRunTestCases", 5105 Handler: _TestCases_BatchRunTestCases_Handler, 5106 }, 5107 { 5108 MethodName: "CalculateCoverage", 5109 Handler: _TestCases_CalculateCoverage_Handler, 5110 }, 5111 { 5112 MethodName: "ImportTestCases", 5113 Handler: _TestCases_ImportTestCases_Handler, 5114 }, 5115 { 5116 MethodName: "ExportTestCases", 5117 Handler: _TestCases_ExportTestCases_Handler, 5118 }, 5119 { 5120 MethodName: "ListTestCaseResults", 5121 Handler: _TestCases_ListTestCaseResults_Handler, 5122 }, 5123 { 5124 MethodName: "GetTestCaseResult", 5125 Handler: _TestCases_GetTestCaseResult_Handler, 5126 }, 5127 }, 5128 Streams: []grpc.StreamDesc{}, 5129 Metadata: "google/cloud/dialogflow/cx/v3beta1/test_case.proto", 5130} 5131