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