github.com/nya3jp/tast@v0.0.0-20230601000426-85c8e4d83a9b/src/go.chromium.org/tast/core/internal/protocol/testing.pb.go (about) 1 // Copyright 2021 The ChromiumOS Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Code generated by protoc-gen-go. DO NOT EDIT. 6 // versions: 7 // protoc-gen-go v1.27.1 8 // protoc v3.21.9 9 // source: testing.proto 10 11 package protocol 12 13 import ( 14 context "context" 15 protocol "go.chromium.org/tast/core/framework/protocol" 16 grpc "google.golang.org/grpc" 17 codes "google.golang.org/grpc/codes" 18 status "google.golang.org/grpc/status" 19 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 20 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 21 durationpb "google.golang.org/protobuf/types/known/durationpb" 22 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 23 reflect "reflect" 24 sync "sync" 25 ) 26 27 const ( 28 // Verify that this generated code is sufficiently up-to-date. 29 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 30 // Verify that runtime/protoimpl is sufficiently up-to-date. 31 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 32 ) 33 34 // EntityType represents a type of an entity. 35 type EntityType int32 36 37 const ( 38 EntityType_TEST EntityType = 0 39 EntityType_FIXTURE EntityType = 1 40 ) 41 42 // Enum value maps for EntityType. 43 var ( 44 EntityType_name = map[int32]string{ 45 0: "TEST", 46 1: "FIXTURE", 47 } 48 EntityType_value = map[string]int32{ 49 "TEST": 0, 50 "FIXTURE": 1, 51 } 52 ) 53 54 func (x EntityType) Enum() *EntityType { 55 p := new(EntityType) 56 *p = x 57 return p 58 } 59 60 func (x EntityType) String() string { 61 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 62 } 63 64 func (EntityType) Descriptor() protoreflect.EnumDescriptor { 65 return file_testing_proto_enumTypes[0].Descriptor() 66 } 67 68 func (EntityType) Type() protoreflect.EnumType { 69 return &file_testing_proto_enumTypes[0] 70 } 71 72 func (x EntityType) Number() protoreflect.EnumNumber { 73 return protoreflect.EnumNumber(x) 74 } 75 76 // Deprecated: Use EntityType.Descriptor instead. 77 func (EntityType) EnumDescriptor() ([]byte, []int) { 78 return file_testing_proto_rawDescGZIP(), []int{0} 79 } 80 81 // DownloadMode specifies a strategy to download external data files. 82 type DownloadMode int32 83 84 const ( 85 // BATCH specifies that test bundles should download external data files 86 // in batch before running tests. 87 DownloadMode_BATCH DownloadMode = 0 88 // LAZY specifies that test bundles should download external data files 89 // as needed between tests. 90 DownloadMode_LAZY DownloadMode = 1 91 ) 92 93 // Enum value maps for DownloadMode. 94 var ( 95 DownloadMode_name = map[int32]string{ 96 0: "BATCH", 97 1: "LAZY", 98 } 99 DownloadMode_value = map[string]int32{ 100 "BATCH": 0, 101 "LAZY": 1, 102 } 103 ) 104 105 func (x DownloadMode) Enum() *DownloadMode { 106 p := new(DownloadMode) 107 *p = x 108 return p 109 } 110 111 func (x DownloadMode) String() string { 112 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 113 } 114 115 func (DownloadMode) Descriptor() protoreflect.EnumDescriptor { 116 return file_testing_proto_enumTypes[1].Descriptor() 117 } 118 119 func (DownloadMode) Type() protoreflect.EnumType { 120 return &file_testing_proto_enumTypes[1] 121 } 122 123 func (x DownloadMode) Number() protoreflect.EnumNumber { 124 return protoreflect.EnumNumber(x) 125 } 126 127 // Deprecated: Use DownloadMode.Descriptor instead. 128 func (DownloadMode) EnumDescriptor() ([]byte, []int) { 129 return file_testing_proto_rawDescGZIP(), []int{1} 130 } 131 132 type StackStatus int32 133 134 const ( 135 StackStatus_GREEN StackStatus = 0 136 StackStatus_RED StackStatus = 1 137 StackStatus_YELLOW StackStatus = 2 138 ) 139 140 // Enum value maps for StackStatus. 141 var ( 142 StackStatus_name = map[int32]string{ 143 0: "GREEN", 144 1: "RED", 145 2: "YELLOW", 146 } 147 StackStatus_value = map[string]int32{ 148 "GREEN": 0, 149 "RED": 1, 150 "YELLOW": 2, 151 } 152 ) 153 154 func (x StackStatus) Enum() *StackStatus { 155 p := new(StackStatus) 156 *p = x 157 return p 158 } 159 160 func (x StackStatus) String() string { 161 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 162 } 163 164 func (StackStatus) Descriptor() protoreflect.EnumDescriptor { 165 return file_testing_proto_enumTypes[2].Descriptor() 166 } 167 168 func (StackStatus) Type() protoreflect.EnumType { 169 return &file_testing_proto_enumTypes[2] 170 } 171 172 func (x StackStatus) Number() protoreflect.EnumNumber { 173 return protoreflect.EnumNumber(x) 174 } 175 176 // Deprecated: Use StackStatus.Descriptor instead. 177 func (StackStatus) EnumDescriptor() ([]byte, []int) { 178 return file_testing_proto_rawDescGZIP(), []int{2} 179 } 180 181 type ListEntitiesRequest struct { 182 state protoimpl.MessageState 183 sizeCache protoimpl.SizeCache 184 unknownFields protoimpl.UnknownFields 185 186 Features *Features `protobuf:"bytes,1,opt,name=features,proto3" json:"features,omitempty"` 187 // Recursive specifies whether to list entities on target bundles recursively. 188 Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` 189 } 190 191 func (x *ListEntitiesRequest) Reset() { 192 *x = ListEntitiesRequest{} 193 if protoimpl.UnsafeEnabled { 194 mi := &file_testing_proto_msgTypes[0] 195 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 196 ms.StoreMessageInfo(mi) 197 } 198 } 199 200 func (x *ListEntitiesRequest) String() string { 201 return protoimpl.X.MessageStringOf(x) 202 } 203 204 func (*ListEntitiesRequest) ProtoMessage() {} 205 206 func (x *ListEntitiesRequest) ProtoReflect() protoreflect.Message { 207 mi := &file_testing_proto_msgTypes[0] 208 if protoimpl.UnsafeEnabled && x != nil { 209 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 210 if ms.LoadMessageInfo() == nil { 211 ms.StoreMessageInfo(mi) 212 } 213 return ms 214 } 215 return mi.MessageOf(x) 216 } 217 218 // Deprecated: Use ListEntitiesRequest.ProtoReflect.Descriptor instead. 219 func (*ListEntitiesRequest) Descriptor() ([]byte, []int) { 220 return file_testing_proto_rawDescGZIP(), []int{0} 221 } 222 223 func (x *ListEntitiesRequest) GetFeatures() *Features { 224 if x != nil { 225 return x.Features 226 } 227 return nil 228 } 229 230 func (x *ListEntitiesRequest) GetRecursive() bool { 231 if x != nil { 232 return x.Recursive 233 } 234 return false 235 } 236 237 type ListEntitiesResponse struct { 238 state protoimpl.MessageState 239 sizeCache protoimpl.SizeCache 240 unknownFields protoimpl.UnknownFields 241 242 // Entities is a list of entities available on the server. The order of 243 // entities is unspecified. 244 Entities []*ResolvedEntity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"` 245 } 246 247 func (x *ListEntitiesResponse) Reset() { 248 *x = ListEntitiesResponse{} 249 if protoimpl.UnsafeEnabled { 250 mi := &file_testing_proto_msgTypes[1] 251 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 252 ms.StoreMessageInfo(mi) 253 } 254 } 255 256 func (x *ListEntitiesResponse) String() string { 257 return protoimpl.X.MessageStringOf(x) 258 } 259 260 func (*ListEntitiesResponse) ProtoMessage() {} 261 262 func (x *ListEntitiesResponse) ProtoReflect() protoreflect.Message { 263 mi := &file_testing_proto_msgTypes[1] 264 if protoimpl.UnsafeEnabled && x != nil { 265 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 266 if ms.LoadMessageInfo() == nil { 267 ms.StoreMessageInfo(mi) 268 } 269 return ms 270 } 271 return mi.MessageOf(x) 272 } 273 274 // Deprecated: Use ListEntitiesResponse.ProtoReflect.Descriptor instead. 275 func (*ListEntitiesResponse) Descriptor() ([]byte, []int) { 276 return file_testing_proto_rawDescGZIP(), []int{1} 277 } 278 279 func (x *ListEntitiesResponse) GetEntities() []*ResolvedEntity { 280 if x != nil { 281 return x.Entities 282 } 283 return nil 284 } 285 286 type GlobalRuntimeVarsRequest struct { 287 state protoimpl.MessageState 288 sizeCache protoimpl.SizeCache 289 unknownFields protoimpl.UnknownFields 290 } 291 292 func (x *GlobalRuntimeVarsRequest) Reset() { 293 *x = GlobalRuntimeVarsRequest{} 294 if protoimpl.UnsafeEnabled { 295 mi := &file_testing_proto_msgTypes[2] 296 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 297 ms.StoreMessageInfo(mi) 298 } 299 } 300 301 func (x *GlobalRuntimeVarsRequest) String() string { 302 return protoimpl.X.MessageStringOf(x) 303 } 304 305 func (*GlobalRuntimeVarsRequest) ProtoMessage() {} 306 307 func (x *GlobalRuntimeVarsRequest) ProtoReflect() protoreflect.Message { 308 mi := &file_testing_proto_msgTypes[2] 309 if protoimpl.UnsafeEnabled && x != nil { 310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 311 if ms.LoadMessageInfo() == nil { 312 ms.StoreMessageInfo(mi) 313 } 314 return ms 315 } 316 return mi.MessageOf(x) 317 } 318 319 // Deprecated: Use GlobalRuntimeVarsRequest.ProtoReflect.Descriptor instead. 320 func (*GlobalRuntimeVarsRequest) Descriptor() ([]byte, []int) { 321 return file_testing_proto_rawDescGZIP(), []int{2} 322 } 323 324 type GlobalRuntimeVar struct { 325 state protoimpl.MessageState 326 sizeCache protoimpl.SizeCache 327 unknownFields protoimpl.UnknownFields 328 329 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 330 } 331 332 func (x *GlobalRuntimeVar) Reset() { 333 *x = GlobalRuntimeVar{} 334 if protoimpl.UnsafeEnabled { 335 mi := &file_testing_proto_msgTypes[3] 336 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 337 ms.StoreMessageInfo(mi) 338 } 339 } 340 341 func (x *GlobalRuntimeVar) String() string { 342 return protoimpl.X.MessageStringOf(x) 343 } 344 345 func (*GlobalRuntimeVar) ProtoMessage() {} 346 347 func (x *GlobalRuntimeVar) ProtoReflect() protoreflect.Message { 348 mi := &file_testing_proto_msgTypes[3] 349 if protoimpl.UnsafeEnabled && x != nil { 350 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 351 if ms.LoadMessageInfo() == nil { 352 ms.StoreMessageInfo(mi) 353 } 354 return ms 355 } 356 return mi.MessageOf(x) 357 } 358 359 // Deprecated: Use GlobalRuntimeVar.ProtoReflect.Descriptor instead. 360 func (*GlobalRuntimeVar) Descriptor() ([]byte, []int) { 361 return file_testing_proto_rawDescGZIP(), []int{3} 362 } 363 364 func (x *GlobalRuntimeVar) GetName() string { 365 if x != nil { 366 return x.Name 367 } 368 return "" 369 } 370 371 type GlobalRuntimeVarsResponse struct { 372 state protoimpl.MessageState 373 sizeCache protoimpl.SizeCache 374 unknownFields protoimpl.UnknownFields 375 376 Vars []*GlobalRuntimeVar `protobuf:"bytes,1,rep,name=vars,proto3" json:"vars,omitempty"` 377 } 378 379 func (x *GlobalRuntimeVarsResponse) Reset() { 380 *x = GlobalRuntimeVarsResponse{} 381 if protoimpl.UnsafeEnabled { 382 mi := &file_testing_proto_msgTypes[4] 383 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 384 ms.StoreMessageInfo(mi) 385 } 386 } 387 388 func (x *GlobalRuntimeVarsResponse) String() string { 389 return protoimpl.X.MessageStringOf(x) 390 } 391 392 func (*GlobalRuntimeVarsResponse) ProtoMessage() {} 393 394 func (x *GlobalRuntimeVarsResponse) ProtoReflect() protoreflect.Message { 395 mi := &file_testing_proto_msgTypes[4] 396 if protoimpl.UnsafeEnabled && x != nil { 397 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 398 if ms.LoadMessageInfo() == nil { 399 ms.StoreMessageInfo(mi) 400 } 401 return ms 402 } 403 return mi.MessageOf(x) 404 } 405 406 // Deprecated: Use GlobalRuntimeVarsResponse.ProtoReflect.Descriptor instead. 407 func (*GlobalRuntimeVarsResponse) Descriptor() ([]byte, []int) { 408 return file_testing_proto_rawDescGZIP(), []int{4} 409 } 410 411 func (x *GlobalRuntimeVarsResponse) GetVars() []*GlobalRuntimeVar { 412 if x != nil { 413 return x.Vars 414 } 415 return nil 416 } 417 418 type RunTestsRequest struct { 419 state protoimpl.MessageState 420 sizeCache protoimpl.SizeCache 421 unknownFields protoimpl.UnknownFields 422 423 // Types that are assignable to Type: 424 // *RunTestsRequest_RunTestsInit 425 // *RunTestsRequest_StackOperationResponse 426 Type isRunTestsRequest_Type `protobuf_oneof:"type"` 427 } 428 429 func (x *RunTestsRequest) Reset() { 430 *x = RunTestsRequest{} 431 if protoimpl.UnsafeEnabled { 432 mi := &file_testing_proto_msgTypes[5] 433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 434 ms.StoreMessageInfo(mi) 435 } 436 } 437 438 func (x *RunTestsRequest) String() string { 439 return protoimpl.X.MessageStringOf(x) 440 } 441 442 func (*RunTestsRequest) ProtoMessage() {} 443 444 func (x *RunTestsRequest) ProtoReflect() protoreflect.Message { 445 mi := &file_testing_proto_msgTypes[5] 446 if protoimpl.UnsafeEnabled && x != nil { 447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 448 if ms.LoadMessageInfo() == nil { 449 ms.StoreMessageInfo(mi) 450 } 451 return ms 452 } 453 return mi.MessageOf(x) 454 } 455 456 // Deprecated: Use RunTestsRequest.ProtoReflect.Descriptor instead. 457 func (*RunTestsRequest) Descriptor() ([]byte, []int) { 458 return file_testing_proto_rawDescGZIP(), []int{5} 459 } 460 461 func (m *RunTestsRequest) GetType() isRunTestsRequest_Type { 462 if m != nil { 463 return m.Type 464 } 465 return nil 466 } 467 468 func (x *RunTestsRequest) GetRunTestsInit() *RunTestsInit { 469 if x, ok := x.GetType().(*RunTestsRequest_RunTestsInit); ok { 470 return x.RunTestsInit 471 } 472 return nil 473 } 474 475 func (x *RunTestsRequest) GetStackOperationResponse() *StackOperationResponse { 476 if x, ok := x.GetType().(*RunTestsRequest_StackOperationResponse); ok { 477 return x.StackOperationResponse 478 } 479 return nil 480 } 481 482 type isRunTestsRequest_Type interface { 483 isRunTestsRequest_Type() 484 } 485 486 type RunTestsRequest_RunTestsInit struct { 487 RunTestsInit *RunTestsInit `protobuf:"bytes,1,opt,name=run_tests_init,json=runTestsInit,proto3,oneof"` 488 } 489 490 type RunTestsRequest_StackOperationResponse struct { 491 StackOperationResponse *StackOperationResponse `protobuf:"bytes,3,opt,name=stack_operation_response,json=stackOperationResponse,proto3,oneof"` 492 } 493 494 func (*RunTestsRequest_RunTestsInit) isRunTestsRequest_Type() {} 495 496 func (*RunTestsRequest_StackOperationResponse) isRunTestsRequest_Type() {} 497 498 type RunTestsResponse struct { 499 state protoimpl.MessageState 500 sizeCache protoimpl.SizeCache 501 unknownFields protoimpl.UnknownFields 502 503 // Types that are assignable to Type: 504 // *RunTestsResponse_RunLog 505 // *RunTestsResponse_EntityStart 506 // *RunTestsResponse_EntityLog 507 // *RunTestsResponse_EntityError 508 // *RunTestsResponse_EntityEnd 509 // *RunTestsResponse_EntityCopyEnd 510 // *RunTestsResponse_StackOperation 511 // *RunTestsResponse_Heartbeat 512 Type isRunTestsResponse_Type `protobuf_oneof:"type"` 513 } 514 515 func (x *RunTestsResponse) Reset() { 516 *x = RunTestsResponse{} 517 if protoimpl.UnsafeEnabled { 518 mi := &file_testing_proto_msgTypes[6] 519 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 520 ms.StoreMessageInfo(mi) 521 } 522 } 523 524 func (x *RunTestsResponse) String() string { 525 return protoimpl.X.MessageStringOf(x) 526 } 527 528 func (*RunTestsResponse) ProtoMessage() {} 529 530 func (x *RunTestsResponse) ProtoReflect() protoreflect.Message { 531 mi := &file_testing_proto_msgTypes[6] 532 if protoimpl.UnsafeEnabled && x != nil { 533 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 534 if ms.LoadMessageInfo() == nil { 535 ms.StoreMessageInfo(mi) 536 } 537 return ms 538 } 539 return mi.MessageOf(x) 540 } 541 542 // Deprecated: Use RunTestsResponse.ProtoReflect.Descriptor instead. 543 func (*RunTestsResponse) Descriptor() ([]byte, []int) { 544 return file_testing_proto_rawDescGZIP(), []int{6} 545 } 546 547 func (m *RunTestsResponse) GetType() isRunTestsResponse_Type { 548 if m != nil { 549 return m.Type 550 } 551 return nil 552 } 553 554 func (x *RunTestsResponse) GetRunLog() *RunLogEvent { 555 if x, ok := x.GetType().(*RunTestsResponse_RunLog); ok { 556 return x.RunLog 557 } 558 return nil 559 } 560 561 func (x *RunTestsResponse) GetEntityStart() *EntityStartEvent { 562 if x, ok := x.GetType().(*RunTestsResponse_EntityStart); ok { 563 return x.EntityStart 564 } 565 return nil 566 } 567 568 func (x *RunTestsResponse) GetEntityLog() *EntityLogEvent { 569 if x, ok := x.GetType().(*RunTestsResponse_EntityLog); ok { 570 return x.EntityLog 571 } 572 return nil 573 } 574 575 func (x *RunTestsResponse) GetEntityError() *EntityErrorEvent { 576 if x, ok := x.GetType().(*RunTestsResponse_EntityError); ok { 577 return x.EntityError 578 } 579 return nil 580 } 581 582 func (x *RunTestsResponse) GetEntityEnd() *EntityEndEvent { 583 if x, ok := x.GetType().(*RunTestsResponse_EntityEnd); ok { 584 return x.EntityEnd 585 } 586 return nil 587 } 588 589 func (x *RunTestsResponse) GetEntityCopyEnd() *EntityCopyEndEvent { 590 if x, ok := x.GetType().(*RunTestsResponse_EntityCopyEnd); ok { 591 return x.EntityCopyEnd 592 } 593 return nil 594 } 595 596 func (x *RunTestsResponse) GetStackOperation() *StackOperationRequest { 597 if x, ok := x.GetType().(*RunTestsResponse_StackOperation); ok { 598 return x.StackOperation 599 } 600 return nil 601 } 602 603 func (x *RunTestsResponse) GetHeartbeat() *HeartbeatEvent { 604 if x, ok := x.GetType().(*RunTestsResponse_Heartbeat); ok { 605 return x.Heartbeat 606 } 607 return nil 608 } 609 610 type isRunTestsResponse_Type interface { 611 isRunTestsResponse_Type() 612 } 613 614 type RunTestsResponse_RunLog struct { 615 RunLog *RunLogEvent `protobuf:"bytes,1,opt,name=run_log,json=runLog,proto3,oneof"` 616 } 617 618 type RunTestsResponse_EntityStart struct { 619 EntityStart *EntityStartEvent `protobuf:"bytes,2,opt,name=entity_start,json=entityStart,proto3,oneof"` 620 } 621 622 type RunTestsResponse_EntityLog struct { 623 EntityLog *EntityLogEvent `protobuf:"bytes,3,opt,name=entity_log,json=entityLog,proto3,oneof"` 624 } 625 626 type RunTestsResponse_EntityError struct { 627 EntityError *EntityErrorEvent `protobuf:"bytes,4,opt,name=entity_error,json=entityError,proto3,oneof"` 628 } 629 630 type RunTestsResponse_EntityEnd struct { 631 EntityEnd *EntityEndEvent `protobuf:"bytes,5,opt,name=entity_end,json=entityEnd,proto3,oneof"` 632 } 633 634 type RunTestsResponse_EntityCopyEnd struct { 635 EntityCopyEnd *EntityCopyEndEvent `protobuf:"bytes,8,opt,name=entity_copy_end,json=entityCopyEnd,proto3,oneof"` 636 } 637 638 type RunTestsResponse_StackOperation struct { 639 StackOperation *StackOperationRequest `protobuf:"bytes,6,opt,name=stack_operation,json=stackOperation,proto3,oneof"` 640 } 641 642 type RunTestsResponse_Heartbeat struct { 643 Heartbeat *HeartbeatEvent `protobuf:"bytes,7,opt,name=heartbeat,proto3,oneof"` 644 } 645 646 func (*RunTestsResponse_RunLog) isRunTestsResponse_Type() {} 647 648 func (*RunTestsResponse_EntityStart) isRunTestsResponse_Type() {} 649 650 func (*RunTestsResponse_EntityLog) isRunTestsResponse_Type() {} 651 652 func (*RunTestsResponse_EntityError) isRunTestsResponse_Type() {} 653 654 func (*RunTestsResponse_EntityEnd) isRunTestsResponse_Type() {} 655 656 func (*RunTestsResponse_EntityCopyEnd) isRunTestsResponse_Type() {} 657 658 func (*RunTestsResponse_StackOperation) isRunTestsResponse_Type() {} 659 660 func (*RunTestsResponse_Heartbeat) isRunTestsResponse_Type() {} 661 662 type GetDUTInfoRequest struct { 663 state protoimpl.MessageState 664 sizeCache protoimpl.SizeCache 665 unknownFields protoimpl.UnknownFields 666 667 // ExtraUseFlags lists USE flags that should be treated as being set in 668 // addition to the ones read from USEFlagsFile when computing the feature sets 669 // for GetDUTInfoResponse. 670 ExtraUseFlags []string `protobuf:"bytes,1,rep,name=extra_use_flags,json=extraUseFlags,proto3" json:"extra_use_flags,omitempty"` 671 // Features specifies whether to get software/hardware features of the DUT. 672 Features bool `protobuf:"varint,2,opt,name=features,proto3" json:"features,omitempty"` 673 } 674 675 func (x *GetDUTInfoRequest) Reset() { 676 *x = GetDUTInfoRequest{} 677 if protoimpl.UnsafeEnabled { 678 mi := &file_testing_proto_msgTypes[7] 679 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 680 ms.StoreMessageInfo(mi) 681 } 682 } 683 684 func (x *GetDUTInfoRequest) String() string { 685 return protoimpl.X.MessageStringOf(x) 686 } 687 688 func (*GetDUTInfoRequest) ProtoMessage() {} 689 690 func (x *GetDUTInfoRequest) ProtoReflect() protoreflect.Message { 691 mi := &file_testing_proto_msgTypes[7] 692 if protoimpl.UnsafeEnabled && x != nil { 693 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 694 if ms.LoadMessageInfo() == nil { 695 ms.StoreMessageInfo(mi) 696 } 697 return ms 698 } 699 return mi.MessageOf(x) 700 } 701 702 // Deprecated: Use GetDUTInfoRequest.ProtoReflect.Descriptor instead. 703 func (*GetDUTInfoRequest) Descriptor() ([]byte, []int) { 704 return file_testing_proto_rawDescGZIP(), []int{7} 705 } 706 707 func (x *GetDUTInfoRequest) GetExtraUseFlags() []string { 708 if x != nil { 709 return x.ExtraUseFlags 710 } 711 return nil 712 } 713 714 func (x *GetDUTInfoRequest) GetFeatures() bool { 715 if x != nil { 716 return x.Features 717 } 718 return false 719 } 720 721 type GetDUTInfoResponse struct { 722 state protoimpl.MessageState 723 sizeCache protoimpl.SizeCache 724 unknownFields protoimpl.UnknownFields 725 726 DutInfo *DUTInfo `protobuf:"bytes,1,opt,name=dut_info,json=dutInfo,proto3" json:"dut_info,omitempty"` 727 } 728 729 func (x *GetDUTInfoResponse) Reset() { 730 *x = GetDUTInfoResponse{} 731 if protoimpl.UnsafeEnabled { 732 mi := &file_testing_proto_msgTypes[8] 733 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 734 ms.StoreMessageInfo(mi) 735 } 736 } 737 738 func (x *GetDUTInfoResponse) String() string { 739 return protoimpl.X.MessageStringOf(x) 740 } 741 742 func (*GetDUTInfoResponse) ProtoMessage() {} 743 744 func (x *GetDUTInfoResponse) ProtoReflect() protoreflect.Message { 745 mi := &file_testing_proto_msgTypes[8] 746 if protoimpl.UnsafeEnabled && x != nil { 747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 748 if ms.LoadMessageInfo() == nil { 749 ms.StoreMessageInfo(mi) 750 } 751 return ms 752 } 753 return mi.MessageOf(x) 754 } 755 756 // Deprecated: Use GetDUTInfoResponse.ProtoReflect.Descriptor instead. 757 func (*GetDUTInfoResponse) Descriptor() ([]byte, []int) { 758 return file_testing_proto_rawDescGZIP(), []int{8} 759 } 760 761 func (x *GetDUTInfoResponse) GetDutInfo() *DUTInfo { 762 if x != nil { 763 return x.DutInfo 764 } 765 return nil 766 } 767 768 type GetSysInfoStateRequest struct { 769 state protoimpl.MessageState 770 sizeCache protoimpl.SizeCache 771 unknownFields protoimpl.UnknownFields 772 } 773 774 func (x *GetSysInfoStateRequest) Reset() { 775 *x = GetSysInfoStateRequest{} 776 if protoimpl.UnsafeEnabled { 777 mi := &file_testing_proto_msgTypes[9] 778 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 779 ms.StoreMessageInfo(mi) 780 } 781 } 782 783 func (x *GetSysInfoStateRequest) String() string { 784 return protoimpl.X.MessageStringOf(x) 785 } 786 787 func (*GetSysInfoStateRequest) ProtoMessage() {} 788 789 func (x *GetSysInfoStateRequest) ProtoReflect() protoreflect.Message { 790 mi := &file_testing_proto_msgTypes[9] 791 if protoimpl.UnsafeEnabled && x != nil { 792 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 793 if ms.LoadMessageInfo() == nil { 794 ms.StoreMessageInfo(mi) 795 } 796 return ms 797 } 798 return mi.MessageOf(x) 799 } 800 801 // Deprecated: Use GetSysInfoStateRequest.ProtoReflect.Descriptor instead. 802 func (*GetSysInfoStateRequest) Descriptor() ([]byte, []int) { 803 return file_testing_proto_rawDescGZIP(), []int{9} 804 } 805 806 type GetSysInfoStateResponse struct { 807 state protoimpl.MessageState 808 sizeCache protoimpl.SizeCache 809 unknownFields protoimpl.UnknownFields 810 811 // State contains the collected sysinfo state. 812 State *SysInfoState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` 813 } 814 815 func (x *GetSysInfoStateResponse) Reset() { 816 *x = GetSysInfoStateResponse{} 817 if protoimpl.UnsafeEnabled { 818 mi := &file_testing_proto_msgTypes[10] 819 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 820 ms.StoreMessageInfo(mi) 821 } 822 } 823 824 func (x *GetSysInfoStateResponse) String() string { 825 return protoimpl.X.MessageStringOf(x) 826 } 827 828 func (*GetSysInfoStateResponse) ProtoMessage() {} 829 830 func (x *GetSysInfoStateResponse) ProtoReflect() protoreflect.Message { 831 mi := &file_testing_proto_msgTypes[10] 832 if protoimpl.UnsafeEnabled && x != nil { 833 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 834 if ms.LoadMessageInfo() == nil { 835 ms.StoreMessageInfo(mi) 836 } 837 return ms 838 } 839 return mi.MessageOf(x) 840 } 841 842 // Deprecated: Use GetSysInfoStateResponse.ProtoReflect.Descriptor instead. 843 func (*GetSysInfoStateResponse) Descriptor() ([]byte, []int) { 844 return file_testing_proto_rawDescGZIP(), []int{10} 845 } 846 847 func (x *GetSysInfoStateResponse) GetState() *SysInfoState { 848 if x != nil { 849 return x.State 850 } 851 return nil 852 } 853 854 type CollectSysInfoRequest struct { 855 state protoimpl.MessageState 856 sizeCache protoimpl.SizeCache 857 unknownFields protoimpl.UnknownFields 858 859 // InitialState describes the pre-testing state of the DUT. It should be 860 // generated by the GetSysInfoState method executed before tests are run. 861 InitialState *SysInfoState `protobuf:"bytes,1,opt,name=initial_state,json=initialState,proto3" json:"initial_state,omitempty"` 862 } 863 864 func (x *CollectSysInfoRequest) Reset() { 865 *x = CollectSysInfoRequest{} 866 if protoimpl.UnsafeEnabled { 867 mi := &file_testing_proto_msgTypes[11] 868 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 869 ms.StoreMessageInfo(mi) 870 } 871 } 872 873 func (x *CollectSysInfoRequest) String() string { 874 return protoimpl.X.MessageStringOf(x) 875 } 876 877 func (*CollectSysInfoRequest) ProtoMessage() {} 878 879 func (x *CollectSysInfoRequest) ProtoReflect() protoreflect.Message { 880 mi := &file_testing_proto_msgTypes[11] 881 if protoimpl.UnsafeEnabled && x != nil { 882 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 883 if ms.LoadMessageInfo() == nil { 884 ms.StoreMessageInfo(mi) 885 } 886 return ms 887 } 888 return mi.MessageOf(x) 889 } 890 891 // Deprecated: Use CollectSysInfoRequest.ProtoReflect.Descriptor instead. 892 func (*CollectSysInfoRequest) Descriptor() ([]byte, []int) { 893 return file_testing_proto_rawDescGZIP(), []int{11} 894 } 895 896 func (x *CollectSysInfoRequest) GetInitialState() *SysInfoState { 897 if x != nil { 898 return x.InitialState 899 } 900 return nil 901 } 902 903 type CollectSysInfoResponse struct { 904 state protoimpl.MessageState 905 sizeCache protoimpl.SizeCache 906 unknownFields protoimpl.UnknownFields 907 908 // LogDir is the directory which log files were copied to. The caller should 909 // delete it. 910 LogDir string `protobuf:"bytes,1,opt,name=log_dir,json=logDir,proto3" json:"log_dir,omitempty"` 911 // CrashDir is the directory which minidump crash files were copied to. The 912 // caller should delete it. 913 CrashDir string `protobuf:"bytes,2,opt,name=crash_dir,json=crashDir,proto3" json:"crash_dir,omitempty"` 914 } 915 916 func (x *CollectSysInfoResponse) Reset() { 917 *x = CollectSysInfoResponse{} 918 if protoimpl.UnsafeEnabled { 919 mi := &file_testing_proto_msgTypes[12] 920 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 921 ms.StoreMessageInfo(mi) 922 } 923 } 924 925 func (x *CollectSysInfoResponse) String() string { 926 return protoimpl.X.MessageStringOf(x) 927 } 928 929 func (*CollectSysInfoResponse) ProtoMessage() {} 930 931 func (x *CollectSysInfoResponse) ProtoReflect() protoreflect.Message { 932 mi := &file_testing_proto_msgTypes[12] 933 if protoimpl.UnsafeEnabled && x != nil { 934 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 935 if ms.LoadMessageInfo() == nil { 936 ms.StoreMessageInfo(mi) 937 } 938 return ms 939 } 940 return mi.MessageOf(x) 941 } 942 943 // Deprecated: Use CollectSysInfoResponse.ProtoReflect.Descriptor instead. 944 func (*CollectSysInfoResponse) Descriptor() ([]byte, []int) { 945 return file_testing_proto_rawDescGZIP(), []int{12} 946 } 947 948 func (x *CollectSysInfoResponse) GetLogDir() string { 949 if x != nil { 950 return x.LogDir 951 } 952 return "" 953 } 954 955 func (x *CollectSysInfoResponse) GetCrashDir() string { 956 if x != nil { 957 return x.CrashDir 958 } 959 return "" 960 } 961 962 type DownloadPrivateBundlesRequest struct { 963 state protoimpl.MessageState 964 sizeCache protoimpl.SizeCache 965 unknownFields protoimpl.UnknownFields 966 967 // ServiceConfig contains information needed to connect to the service 968 // provided by infrastructure system. 969 ServiceConfig *ServiceConfig `protobuf:"bytes,1,opt,name=service_config,json=serviceConfig,proto3" json:"service_config,omitempty"` 970 // BuildArtifactsUrl is the URL of Google Cloud Storage directory, ending with 971 // a slash, containing build artifacts for the current ChromeOS image. 972 // If it is empty, DefaultBuildArtifactsURL in runner.Config is used. 973 BuildArtifactUrl string `protobuf:"bytes,2,opt,name=build_artifact_url,json=buildArtifactUrl,proto3" json:"build_artifact_url,omitempty"` 974 } 975 976 func (x *DownloadPrivateBundlesRequest) Reset() { 977 *x = DownloadPrivateBundlesRequest{} 978 if protoimpl.UnsafeEnabled { 979 mi := &file_testing_proto_msgTypes[13] 980 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 981 ms.StoreMessageInfo(mi) 982 } 983 } 984 985 func (x *DownloadPrivateBundlesRequest) String() string { 986 return protoimpl.X.MessageStringOf(x) 987 } 988 989 func (*DownloadPrivateBundlesRequest) ProtoMessage() {} 990 991 func (x *DownloadPrivateBundlesRequest) ProtoReflect() protoreflect.Message { 992 mi := &file_testing_proto_msgTypes[13] 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 DownloadPrivateBundlesRequest.ProtoReflect.Descriptor instead. 1004 func (*DownloadPrivateBundlesRequest) Descriptor() ([]byte, []int) { 1005 return file_testing_proto_rawDescGZIP(), []int{13} 1006 } 1007 1008 func (x *DownloadPrivateBundlesRequest) GetServiceConfig() *ServiceConfig { 1009 if x != nil { 1010 return x.ServiceConfig 1011 } 1012 return nil 1013 } 1014 1015 func (x *DownloadPrivateBundlesRequest) GetBuildArtifactUrl() string { 1016 if x != nil { 1017 return x.BuildArtifactUrl 1018 } 1019 return "" 1020 } 1021 1022 type DownloadPrivateBundlesResponse struct { 1023 state protoimpl.MessageState 1024 sizeCache protoimpl.SizeCache 1025 unknownFields protoimpl.UnknownFields 1026 } 1027 1028 func (x *DownloadPrivateBundlesResponse) Reset() { 1029 *x = DownloadPrivateBundlesResponse{} 1030 if protoimpl.UnsafeEnabled { 1031 mi := &file_testing_proto_msgTypes[14] 1032 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1033 ms.StoreMessageInfo(mi) 1034 } 1035 } 1036 1037 func (x *DownloadPrivateBundlesResponse) String() string { 1038 return protoimpl.X.MessageStringOf(x) 1039 } 1040 1041 func (*DownloadPrivateBundlesResponse) ProtoMessage() {} 1042 1043 func (x *DownloadPrivateBundlesResponse) ProtoReflect() protoreflect.Message { 1044 mi := &file_testing_proto_msgTypes[14] 1045 if protoimpl.UnsafeEnabled && x != nil { 1046 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1047 if ms.LoadMessageInfo() == nil { 1048 ms.StoreMessageInfo(mi) 1049 } 1050 return ms 1051 } 1052 return mi.MessageOf(x) 1053 } 1054 1055 // Deprecated: Use DownloadPrivateBundlesResponse.ProtoReflect.Descriptor instead. 1056 func (*DownloadPrivateBundlesResponse) Descriptor() ([]byte, []int) { 1057 return file_testing_proto_rawDescGZIP(), []int{14} 1058 } 1059 1060 type StreamFileRequest struct { 1061 state protoimpl.MessageState 1062 sizeCache protoimpl.SizeCache 1063 unknownFields protoimpl.UnknownFields 1064 1065 // Name is the name of the file which the content will be streamed. 1066 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1067 // Offset is where in the file that streaming should start. 1068 // If the offset is negative, streaming will start at the end of file. 1069 Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` 1070 } 1071 1072 func (x *StreamFileRequest) Reset() { 1073 *x = StreamFileRequest{} 1074 if protoimpl.UnsafeEnabled { 1075 mi := &file_testing_proto_msgTypes[15] 1076 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1077 ms.StoreMessageInfo(mi) 1078 } 1079 } 1080 1081 func (x *StreamFileRequest) String() string { 1082 return protoimpl.X.MessageStringOf(x) 1083 } 1084 1085 func (*StreamFileRequest) ProtoMessage() {} 1086 1087 func (x *StreamFileRequest) ProtoReflect() protoreflect.Message { 1088 mi := &file_testing_proto_msgTypes[15] 1089 if protoimpl.UnsafeEnabled && x != nil { 1090 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1091 if ms.LoadMessageInfo() == nil { 1092 ms.StoreMessageInfo(mi) 1093 } 1094 return ms 1095 } 1096 return mi.MessageOf(x) 1097 } 1098 1099 // Deprecated: Use StreamFileRequest.ProtoReflect.Descriptor instead. 1100 func (*StreamFileRequest) Descriptor() ([]byte, []int) { 1101 return file_testing_proto_rawDescGZIP(), []int{15} 1102 } 1103 1104 func (x *StreamFileRequest) GetName() string { 1105 if x != nil { 1106 return x.Name 1107 } 1108 return "" 1109 } 1110 1111 func (x *StreamFileRequest) GetOffset() int64 { 1112 if x != nil { 1113 return x.Offset 1114 } 1115 return 0 1116 } 1117 1118 type StreamFileResponse struct { 1119 state protoimpl.MessageState 1120 sizeCache protoimpl.SizeCache 1121 unknownFields protoimpl.UnknownFields 1122 1123 // Content is the latest content from the log file. 1124 Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` 1125 // Offset is where the current file point to after reading the current data. 1126 Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` 1127 } 1128 1129 func (x *StreamFileResponse) Reset() { 1130 *x = StreamFileResponse{} 1131 if protoimpl.UnsafeEnabled { 1132 mi := &file_testing_proto_msgTypes[16] 1133 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1134 ms.StoreMessageInfo(mi) 1135 } 1136 } 1137 1138 func (x *StreamFileResponse) String() string { 1139 return protoimpl.X.MessageStringOf(x) 1140 } 1141 1142 func (*StreamFileResponse) ProtoMessage() {} 1143 1144 func (x *StreamFileResponse) ProtoReflect() protoreflect.Message { 1145 mi := &file_testing_proto_msgTypes[16] 1146 if protoimpl.UnsafeEnabled && x != nil { 1147 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1148 if ms.LoadMessageInfo() == nil { 1149 ms.StoreMessageInfo(mi) 1150 } 1151 return ms 1152 } 1153 return mi.MessageOf(x) 1154 } 1155 1156 // Deprecated: Use StreamFileResponse.ProtoReflect.Descriptor instead. 1157 func (*StreamFileResponse) Descriptor() ([]byte, []int) { 1158 return file_testing_proto_rawDescGZIP(), []int{16} 1159 } 1160 1161 func (x *StreamFileResponse) GetData() []byte { 1162 if x != nil { 1163 return x.Data 1164 } 1165 return nil 1166 } 1167 1168 func (x *StreamFileResponse) GetOffset() int64 { 1169 if x != nil { 1170 return x.Offset 1171 } 1172 return 0 1173 } 1174 1175 // Entity describes an entity. 1176 type Entity struct { 1177 state protoimpl.MessageState 1178 sizeCache protoimpl.SizeCache 1179 unknownFields protoimpl.UnknownFields 1180 1181 Type EntityType `protobuf:"varint,1,opt,name=type,proto3,enum=tast.core.EntityType" json:"type,omitempty"` 1182 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 1183 Package string `protobuf:"bytes,3,opt,name=package,proto3" json:"package,omitempty"` 1184 Attributes []string `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"` 1185 Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` 1186 Fixture string `protobuf:"bytes,6,opt,name=fixture,proto3" json:"fixture,omitempty"` 1187 Dependencies *EntityDependencies `protobuf:"bytes,7,opt,name=dependencies,proto3" json:"dependencies,omitempty"` 1188 Contacts *EntityContacts `protobuf:"bytes,8,opt,name=contacts,proto3" json:"contacts,omitempty"` 1189 LegacyData *EntityLegacyData `protobuf:"bytes,9,opt,name=legacy_data,json=legacyData,proto3" json:"legacy_data,omitempty"` 1190 SearchFlags []*StringPair `protobuf:"bytes,10,rep,name=search_flags,json=searchFlags,proto3" json:"search_flags,omitempty"` 1191 TestBedDeps []string `protobuf:"bytes,11,rep,name=test_bed_deps,json=testBedDeps,proto3" json:"test_bed_deps,omitempty"` 1192 Requirements []string `protobuf:"bytes,12,rep,name=requirements,proto3" json:"requirements,omitempty"` 1193 BugComponent string `protobuf:"bytes,13,opt,name=bug_component,json=bugComponent,proto3" json:"bug_component,omitempty"` 1194 LacrosStatus string `protobuf:"bytes,14,opt,name=lacros_status,json=lacrosStatus,proto3" json:"lacros_status,omitempty"` 1195 } 1196 1197 func (x *Entity) Reset() { 1198 *x = Entity{} 1199 if protoimpl.UnsafeEnabled { 1200 mi := &file_testing_proto_msgTypes[17] 1201 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1202 ms.StoreMessageInfo(mi) 1203 } 1204 } 1205 1206 func (x *Entity) String() string { 1207 return protoimpl.X.MessageStringOf(x) 1208 } 1209 1210 func (*Entity) ProtoMessage() {} 1211 1212 func (x *Entity) ProtoReflect() protoreflect.Message { 1213 mi := &file_testing_proto_msgTypes[17] 1214 if protoimpl.UnsafeEnabled && x != nil { 1215 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1216 if ms.LoadMessageInfo() == nil { 1217 ms.StoreMessageInfo(mi) 1218 } 1219 return ms 1220 } 1221 return mi.MessageOf(x) 1222 } 1223 1224 // Deprecated: Use Entity.ProtoReflect.Descriptor instead. 1225 func (*Entity) Descriptor() ([]byte, []int) { 1226 return file_testing_proto_rawDescGZIP(), []int{17} 1227 } 1228 1229 func (x *Entity) GetType() EntityType { 1230 if x != nil { 1231 return x.Type 1232 } 1233 return EntityType_TEST 1234 } 1235 1236 func (x *Entity) GetName() string { 1237 if x != nil { 1238 return x.Name 1239 } 1240 return "" 1241 } 1242 1243 func (x *Entity) GetPackage() string { 1244 if x != nil { 1245 return x.Package 1246 } 1247 return "" 1248 } 1249 1250 func (x *Entity) GetAttributes() []string { 1251 if x != nil { 1252 return x.Attributes 1253 } 1254 return nil 1255 } 1256 1257 func (x *Entity) GetDescription() string { 1258 if x != nil { 1259 return x.Description 1260 } 1261 return "" 1262 } 1263 1264 func (x *Entity) GetFixture() string { 1265 if x != nil { 1266 return x.Fixture 1267 } 1268 return "" 1269 } 1270 1271 func (x *Entity) GetDependencies() *EntityDependencies { 1272 if x != nil { 1273 return x.Dependencies 1274 } 1275 return nil 1276 } 1277 1278 func (x *Entity) GetContacts() *EntityContacts { 1279 if x != nil { 1280 return x.Contacts 1281 } 1282 return nil 1283 } 1284 1285 func (x *Entity) GetLegacyData() *EntityLegacyData { 1286 if x != nil { 1287 return x.LegacyData 1288 } 1289 return nil 1290 } 1291 1292 func (x *Entity) GetSearchFlags() []*StringPair { 1293 if x != nil { 1294 return x.SearchFlags 1295 } 1296 return nil 1297 } 1298 1299 func (x *Entity) GetTestBedDeps() []string { 1300 if x != nil { 1301 return x.TestBedDeps 1302 } 1303 return nil 1304 } 1305 1306 func (x *Entity) GetRequirements() []string { 1307 if x != nil { 1308 return x.Requirements 1309 } 1310 return nil 1311 } 1312 1313 func (x *Entity) GetBugComponent() string { 1314 if x != nil { 1315 return x.BugComponent 1316 } 1317 return "" 1318 } 1319 1320 func (x *Entity) GetLacrosStatus() string { 1321 if x != nil { 1322 return x.LacrosStatus 1323 } 1324 return "" 1325 } 1326 1327 // EntityContacts contains contact information of an entity. 1328 type EntityContacts struct { 1329 state protoimpl.MessageState 1330 sizeCache protoimpl.SizeCache 1331 unknownFields protoimpl.UnknownFields 1332 1333 Emails []string `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"` 1334 } 1335 1336 func (x *EntityContacts) Reset() { 1337 *x = EntityContacts{} 1338 if protoimpl.UnsafeEnabled { 1339 mi := &file_testing_proto_msgTypes[18] 1340 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1341 ms.StoreMessageInfo(mi) 1342 } 1343 } 1344 1345 func (x *EntityContacts) String() string { 1346 return protoimpl.X.MessageStringOf(x) 1347 } 1348 1349 func (*EntityContacts) ProtoMessage() {} 1350 1351 func (x *EntityContacts) ProtoReflect() protoreflect.Message { 1352 mi := &file_testing_proto_msgTypes[18] 1353 if protoimpl.UnsafeEnabled && x != nil { 1354 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1355 if ms.LoadMessageInfo() == nil { 1356 ms.StoreMessageInfo(mi) 1357 } 1358 return ms 1359 } 1360 return mi.MessageOf(x) 1361 } 1362 1363 // Deprecated: Use EntityContacts.ProtoReflect.Descriptor instead. 1364 func (*EntityContacts) Descriptor() ([]byte, []int) { 1365 return file_testing_proto_rawDescGZIP(), []int{18} 1366 } 1367 1368 func (x *EntityContacts) GetEmails() []string { 1369 if x != nil { 1370 return x.Emails 1371 } 1372 return nil 1373 } 1374 1375 // EntityDependencies describes dependencies of an entity that need to be 1376 // evaluated before running it. 1377 type EntityDependencies struct { 1378 state protoimpl.MessageState 1379 sizeCache protoimpl.SizeCache 1380 unknownFields protoimpl.UnknownFields 1381 1382 DataFiles []string `protobuf:"bytes,1,rep,name=data_files,json=dataFiles,proto3" json:"data_files,omitempty"` 1383 Services []string `protobuf:"bytes,2,rep,name=services,proto3" json:"services,omitempty"` 1384 } 1385 1386 func (x *EntityDependencies) Reset() { 1387 *x = EntityDependencies{} 1388 if protoimpl.UnsafeEnabled { 1389 mi := &file_testing_proto_msgTypes[19] 1390 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1391 ms.StoreMessageInfo(mi) 1392 } 1393 } 1394 1395 func (x *EntityDependencies) String() string { 1396 return protoimpl.X.MessageStringOf(x) 1397 } 1398 1399 func (*EntityDependencies) ProtoMessage() {} 1400 1401 func (x *EntityDependencies) ProtoReflect() protoreflect.Message { 1402 mi := &file_testing_proto_msgTypes[19] 1403 if protoimpl.UnsafeEnabled && x != nil { 1404 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1405 if ms.LoadMessageInfo() == nil { 1406 ms.StoreMessageInfo(mi) 1407 } 1408 return ms 1409 } 1410 return mi.MessageOf(x) 1411 } 1412 1413 // Deprecated: Use EntityDependencies.ProtoReflect.Descriptor instead. 1414 func (*EntityDependencies) Descriptor() ([]byte, []int) { 1415 return file_testing_proto_rawDescGZIP(), []int{19} 1416 } 1417 1418 func (x *EntityDependencies) GetDataFiles() []string { 1419 if x != nil { 1420 return x.DataFiles 1421 } 1422 return nil 1423 } 1424 1425 func (x *EntityDependencies) GetServices() []string { 1426 if x != nil { 1427 return x.Services 1428 } 1429 return nil 1430 } 1431 1432 // EntityLegacyData contains extra information of an entity. 1433 // Fields in this message are considered legacy because test bundles need to 1434 // send these fields to Tast CLI just because they are made available in 1435 // results.json for compatibility reasons. 1436 type EntityLegacyData struct { 1437 state protoimpl.MessageState 1438 sizeCache protoimpl.SizeCache 1439 unknownFields protoimpl.UnknownFields 1440 1441 Timeout *durationpb.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` 1442 Variables []string `protobuf:"bytes,2,rep,name=variables,proto3" json:"variables,omitempty"` 1443 VariableDeps []string `protobuf:"bytes,3,rep,name=variable_deps,json=variableDeps,proto3" json:"variable_deps,omitempty"` 1444 SoftwareDeps []string `protobuf:"bytes,4,rep,name=software_deps,json=softwareDeps,proto3" json:"software_deps,omitempty"` 1445 Bundle string `protobuf:"bytes,5,opt,name=bundle,proto3" json:"bundle,omitempty"` 1446 } 1447 1448 func (x *EntityLegacyData) Reset() { 1449 *x = EntityLegacyData{} 1450 if protoimpl.UnsafeEnabled { 1451 mi := &file_testing_proto_msgTypes[20] 1452 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1453 ms.StoreMessageInfo(mi) 1454 } 1455 } 1456 1457 func (x *EntityLegacyData) String() string { 1458 return protoimpl.X.MessageStringOf(x) 1459 } 1460 1461 func (*EntityLegacyData) ProtoMessage() {} 1462 1463 func (x *EntityLegacyData) ProtoReflect() protoreflect.Message { 1464 mi := &file_testing_proto_msgTypes[20] 1465 if protoimpl.UnsafeEnabled && x != nil { 1466 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1467 if ms.LoadMessageInfo() == nil { 1468 ms.StoreMessageInfo(mi) 1469 } 1470 return ms 1471 } 1472 return mi.MessageOf(x) 1473 } 1474 1475 // Deprecated: Use EntityLegacyData.ProtoReflect.Descriptor instead. 1476 func (*EntityLegacyData) Descriptor() ([]byte, []int) { 1477 return file_testing_proto_rawDescGZIP(), []int{20} 1478 } 1479 1480 func (x *EntityLegacyData) GetTimeout() *durationpb.Duration { 1481 if x != nil { 1482 return x.Timeout 1483 } 1484 return nil 1485 } 1486 1487 func (x *EntityLegacyData) GetVariables() []string { 1488 if x != nil { 1489 return x.Variables 1490 } 1491 return nil 1492 } 1493 1494 func (x *EntityLegacyData) GetVariableDeps() []string { 1495 if x != nil { 1496 return x.VariableDeps 1497 } 1498 return nil 1499 } 1500 1501 func (x *EntityLegacyData) GetSoftwareDeps() []string { 1502 if x != nil { 1503 return x.SoftwareDeps 1504 } 1505 return nil 1506 } 1507 1508 func (x *EntityLegacyData) GetBundle() string { 1509 if x != nil { 1510 return x.Bundle 1511 } 1512 return "" 1513 } 1514 1515 type RunTestsInit struct { 1516 state protoimpl.MessageState 1517 sizeCache protoimpl.SizeCache 1518 unknownFields protoimpl.UnknownFields 1519 1520 RunConfig *RunConfig `protobuf:"bytes,1,opt,name=run_config,json=runConfig,proto3" json:"run_config,omitempty"` 1521 // Recursive specifies whether to run tests on target bundles recursively. 1522 Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` 1523 // DebugPort is the port which the debugger for the test bundle will listen 1524 // on. Note that this field is only used for test runners, and not bundles. 1525 DebugPort uint32 `protobuf:"varint,10,opt,name=debug_port,json=debugPort,proto3" json:"debug_port,omitempty"` 1526 } 1527 1528 func (x *RunTestsInit) Reset() { 1529 *x = RunTestsInit{} 1530 if protoimpl.UnsafeEnabled { 1531 mi := &file_testing_proto_msgTypes[21] 1532 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1533 ms.StoreMessageInfo(mi) 1534 } 1535 } 1536 1537 func (x *RunTestsInit) String() string { 1538 return protoimpl.X.MessageStringOf(x) 1539 } 1540 1541 func (*RunTestsInit) ProtoMessage() {} 1542 1543 func (x *RunTestsInit) ProtoReflect() protoreflect.Message { 1544 mi := &file_testing_proto_msgTypes[21] 1545 if protoimpl.UnsafeEnabled && x != nil { 1546 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1547 if ms.LoadMessageInfo() == nil { 1548 ms.StoreMessageInfo(mi) 1549 } 1550 return ms 1551 } 1552 return mi.MessageOf(x) 1553 } 1554 1555 // Deprecated: Use RunTestsInit.ProtoReflect.Descriptor instead. 1556 func (*RunTestsInit) Descriptor() ([]byte, []int) { 1557 return file_testing_proto_rawDescGZIP(), []int{21} 1558 } 1559 1560 func (x *RunTestsInit) GetRunConfig() *RunConfig { 1561 if x != nil { 1562 return x.RunConfig 1563 } 1564 return nil 1565 } 1566 1567 func (x *RunTestsInit) GetRecursive() bool { 1568 if x != nil { 1569 return x.Recursive 1570 } 1571 return false 1572 } 1573 1574 func (x *RunTestsInit) GetDebugPort() uint32 { 1575 if x != nil { 1576 return x.DebugPort 1577 } 1578 return 0 1579 } 1580 1581 // RunConfig contains parameters needed to run tests in a test bundle. 1582 type RunConfig struct { 1583 state protoimpl.MessageState 1584 sizeCache protoimpl.SizeCache 1585 unknownFields protoimpl.UnknownFields 1586 1587 // Tests is a list of test names to be run. Wildcards are not allowed. 1588 Tests []string `protobuf:"bytes,1,rep,name=tests,proto3" json:"tests,omitempty"` 1589 Dirs *RunDirectories `protobuf:"bytes,2,opt,name=dirs,proto3" json:"dirs,omitempty"` 1590 Features *Features `protobuf:"bytes,3,opt,name=features,proto3" json:"features,omitempty"` 1591 ServiceConfig *ServiceConfig `protobuf:"bytes,4,opt,name=service_config,json=serviceConfig,proto3" json:"service_config,omitempty"` 1592 DataFileConfig *DataFileConfig `protobuf:"bytes,5,opt,name=data_file_config,json=dataFileConfig,proto3" json:"data_file_config,omitempty"` 1593 StartFixtureState *StartFixtureState `protobuf:"bytes,7,opt,name=start_fixture_state,json=startFixtureState,proto3" json:"start_fixture_state,omitempty"` 1594 // HeartbeatInterval is the interval in seconds at which heartbeat messages 1595 // are sent back periodically from runners (before running bundles) and 1596 // bundles. If this value is not positive, heartbeat messages are not sent. 1597 // TODO(crbug.com/1128259): Remove this field once we fully migrate to gRPC. 1598 HeartbeatInterval *durationpb.Duration `protobuf:"bytes,8,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"` 1599 // WaitUntilReady indicates that the test bundle's "ready" function (see 1600 // ReadyFunc) should be executed before any tests are executed. 1601 // TODO(crbug.com/1128259): Remove this field once we fully migrate to gRPC. 1602 WaitUntilReady bool `protobuf:"varint,9,opt,name=wait_until_ready,json=waitUntilReady,proto3" json:"wait_until_ready,omitempty"` 1603 // DebugPort is the port that the bundle will attach the debugger to. 1604 DebugPort uint32 `protobuf:"varint,10,opt,name=debug_port,json=debugPort,proto3" json:"debug_port,omitempty"` 1605 // SystemServiceTimeout is timeout for waiting for system services to be ready 1606 // in seconds. (Default: 120 seconds) 1607 SystemServicesTimeout *durationpb.Duration `protobuf:"bytes,11,opt,name=system_services_timeout,json=systemServicesTimeout,proto3" json:"system_services_timeout,omitempty"` 1608 // Target specifies how the primary target bundle should run. 1609 // This can be nil if no target bundle exists. 1610 Target *RunTargetConfig `protobuf:"bytes,12,opt,name=target,proto3" json:"target,omitempty"` 1611 // MsgTimeout is the duration that the client waits for. 1612 // If no activity is seen even after that the connection is closed. 1613 // (Default: 60 seconds) 1614 MsgTimeout *durationpb.Duration `protobuf:"bytes,13,opt,name=msg_timeout,json=msgTimeout,proto3" json:"msg_timeout,omitempty"` 1615 // MaxSysMsgLogSize is a maximum size of /var/log/messages that Tast will 1616 // copy. 1617 MaxSysMsgLogSize int64 `protobuf:"varint,14,opt,name=max_sys_msg_log_size,json=maxSysMsgLogSize,proto3" json:"max_sys_msg_log_size,omitempty"` 1618 // WaitUntilReadyTimeout set a timeout for the entire ready.Wait function. 1619 WaitUntilReadyTimeout *durationpb.Duration `protobuf:"bytes,15,opt,name=wait_until_ready_timeout,json=waitUntilReadyTimeout,proto3" json:"wait_until_ready_timeout,omitempty"` 1620 } 1621 1622 func (x *RunConfig) Reset() { 1623 *x = RunConfig{} 1624 if protoimpl.UnsafeEnabled { 1625 mi := &file_testing_proto_msgTypes[22] 1626 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1627 ms.StoreMessageInfo(mi) 1628 } 1629 } 1630 1631 func (x *RunConfig) String() string { 1632 return protoimpl.X.MessageStringOf(x) 1633 } 1634 1635 func (*RunConfig) ProtoMessage() {} 1636 1637 func (x *RunConfig) ProtoReflect() protoreflect.Message { 1638 mi := &file_testing_proto_msgTypes[22] 1639 if protoimpl.UnsafeEnabled && x != nil { 1640 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1641 if ms.LoadMessageInfo() == nil { 1642 ms.StoreMessageInfo(mi) 1643 } 1644 return ms 1645 } 1646 return mi.MessageOf(x) 1647 } 1648 1649 // Deprecated: Use RunConfig.ProtoReflect.Descriptor instead. 1650 func (*RunConfig) Descriptor() ([]byte, []int) { 1651 return file_testing_proto_rawDescGZIP(), []int{22} 1652 } 1653 1654 func (x *RunConfig) GetTests() []string { 1655 if x != nil { 1656 return x.Tests 1657 } 1658 return nil 1659 } 1660 1661 func (x *RunConfig) GetDirs() *RunDirectories { 1662 if x != nil { 1663 return x.Dirs 1664 } 1665 return nil 1666 } 1667 1668 func (x *RunConfig) GetFeatures() *Features { 1669 if x != nil { 1670 return x.Features 1671 } 1672 return nil 1673 } 1674 1675 func (x *RunConfig) GetServiceConfig() *ServiceConfig { 1676 if x != nil { 1677 return x.ServiceConfig 1678 } 1679 return nil 1680 } 1681 1682 func (x *RunConfig) GetDataFileConfig() *DataFileConfig { 1683 if x != nil { 1684 return x.DataFileConfig 1685 } 1686 return nil 1687 } 1688 1689 func (x *RunConfig) GetStartFixtureState() *StartFixtureState { 1690 if x != nil { 1691 return x.StartFixtureState 1692 } 1693 return nil 1694 } 1695 1696 func (x *RunConfig) GetHeartbeatInterval() *durationpb.Duration { 1697 if x != nil { 1698 return x.HeartbeatInterval 1699 } 1700 return nil 1701 } 1702 1703 func (x *RunConfig) GetWaitUntilReady() bool { 1704 if x != nil { 1705 return x.WaitUntilReady 1706 } 1707 return false 1708 } 1709 1710 func (x *RunConfig) GetDebugPort() uint32 { 1711 if x != nil { 1712 return x.DebugPort 1713 } 1714 return 0 1715 } 1716 1717 func (x *RunConfig) GetSystemServicesTimeout() *durationpb.Duration { 1718 if x != nil { 1719 return x.SystemServicesTimeout 1720 } 1721 return nil 1722 } 1723 1724 func (x *RunConfig) GetTarget() *RunTargetConfig { 1725 if x != nil { 1726 return x.Target 1727 } 1728 return nil 1729 } 1730 1731 func (x *RunConfig) GetMsgTimeout() *durationpb.Duration { 1732 if x != nil { 1733 return x.MsgTimeout 1734 } 1735 return nil 1736 } 1737 1738 func (x *RunConfig) GetMaxSysMsgLogSize() int64 { 1739 if x != nil { 1740 return x.MaxSysMsgLogSize 1741 } 1742 return 0 1743 } 1744 1745 func (x *RunConfig) GetWaitUntilReadyTimeout() *durationpb.Duration { 1746 if x != nil { 1747 return x.WaitUntilReadyTimeout 1748 } 1749 return nil 1750 } 1751 1752 // RunTargetConfig contains parameters for the primary target bundle to run. 1753 type RunTargetConfig struct { 1754 state protoimpl.MessageState 1755 sizeCache protoimpl.SizeCache 1756 unknownFields protoimpl.UnknownFields 1757 1758 // Devservers correspnods to config.Devservers. 1759 Devservers []string `protobuf:"bytes,1,rep,name=devservers,proto3" json:"devservers,omitempty"` 1760 // Dirs contains directories local tests use. 1761 Dirs *RunDirectories `protobuf:"bytes,2,opt,name=dirs,proto3" json:"dirs,omitempty"` 1762 // DebugPort is the port that the bundle will attach the debugger to. 1763 DebugPort uint32 `protobuf:"varint,3,opt,name=debug_port,json=debugPort,proto3" json:"debug_port,omitempty"` 1764 // MaxTestFailures specifies maximum test failures allowed. 1765 MaxTestFailures int32 `protobuf:"varint,4,opt,name=max_test_failures,json=maxTestFailures,proto3" json:"max_test_failures,omitempty"` 1766 // Retries is the number of retries for failing tests. 1767 Retries int32 `protobuf:"varint,5,opt,name=retries,proto3" json:"retries,omitempty"` 1768 // Proxy if true indicates that the HTTP_PROXY, HTTPS_PROXY, and NO_PROXY 1769 // environment variables (and their lowercase counterparts) should be 1770 // forwarded to the DUT if set on the host. 1771 Proxy bool `protobuf:"varint,6,opt,name=proxy,proto3" json:"proxy,omitempty"` 1772 // TODO(crbug.com/1128259): Remove this field once we fully migrate to gRPC. 1773 WaitUntilReady bool `protobuf:"varint,7,opt,name=wait_until_ready,json=waitUntilReady,proto3" json:"wait_until_ready,omitempty"` 1774 // MsgTimeout is the duration that the client waits for. 1775 // If no activity is seen even after that the connection is closed. 1776 // (Default: 60 seconds) 1777 MsgTimeout *durationpb.Duration `protobuf:"bytes,8,opt,name=msg_timeout,json=msgTimeout,proto3" json:"msg_timeout,omitempty"` 1778 // SystemServiceTimeout is timeout for waiting for system services to be ready 1779 // in seconds. (Default: 120 seconds) 1780 SystemServicesTimeout *durationpb.Duration `protobuf:"bytes,9,opt,name=system_services_timeout,json=systemServicesTimeout,proto3" json:"system_services_timeout,omitempty"` 1781 // WaitUntilReadyTimeout set a timeout for the entire ready.Wait function. 1782 //(Default: 120 seconds) 1783 WaitUntilReadyTimeout *durationpb.Duration `protobuf:"bytes,10,opt,name=wait_until_ready_timeout,json=waitUntilReadyTimeout,proto3" json:"wait_until_ready_timeout,omitempty"` 1784 // SwarmingTaskID specifies the swarming task ID of the scheduled 1785 // job that run Tast tests. 1786 SwarmingTaskID string `protobuf:"bytes,11,opt,name=SwarmingTaskID,proto3" json:"SwarmingTaskID,omitempty"` 1787 // BuildBucketID specifies the build bucket ID of the scheduled 1788 // job that run Tast tests. 1789 BuildBucketID string `protobuf:"bytes,12,opt,name=BuildBucketID,proto3" json:"BuildBucketID,omitempty"` 1790 } 1791 1792 func (x *RunTargetConfig) Reset() { 1793 *x = RunTargetConfig{} 1794 if protoimpl.UnsafeEnabled { 1795 mi := &file_testing_proto_msgTypes[23] 1796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1797 ms.StoreMessageInfo(mi) 1798 } 1799 } 1800 1801 func (x *RunTargetConfig) String() string { 1802 return protoimpl.X.MessageStringOf(x) 1803 } 1804 1805 func (*RunTargetConfig) ProtoMessage() {} 1806 1807 func (x *RunTargetConfig) ProtoReflect() protoreflect.Message { 1808 mi := &file_testing_proto_msgTypes[23] 1809 if protoimpl.UnsafeEnabled && x != nil { 1810 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1811 if ms.LoadMessageInfo() == nil { 1812 ms.StoreMessageInfo(mi) 1813 } 1814 return ms 1815 } 1816 return mi.MessageOf(x) 1817 } 1818 1819 // Deprecated: Use RunTargetConfig.ProtoReflect.Descriptor instead. 1820 func (*RunTargetConfig) Descriptor() ([]byte, []int) { 1821 return file_testing_proto_rawDescGZIP(), []int{23} 1822 } 1823 1824 func (x *RunTargetConfig) GetDevservers() []string { 1825 if x != nil { 1826 return x.Devservers 1827 } 1828 return nil 1829 } 1830 1831 func (x *RunTargetConfig) GetDirs() *RunDirectories { 1832 if x != nil { 1833 return x.Dirs 1834 } 1835 return nil 1836 } 1837 1838 func (x *RunTargetConfig) GetDebugPort() uint32 { 1839 if x != nil { 1840 return x.DebugPort 1841 } 1842 return 0 1843 } 1844 1845 func (x *RunTargetConfig) GetMaxTestFailures() int32 { 1846 if x != nil { 1847 return x.MaxTestFailures 1848 } 1849 return 0 1850 } 1851 1852 func (x *RunTargetConfig) GetRetries() int32 { 1853 if x != nil { 1854 return x.Retries 1855 } 1856 return 0 1857 } 1858 1859 func (x *RunTargetConfig) GetProxy() bool { 1860 if x != nil { 1861 return x.Proxy 1862 } 1863 return false 1864 } 1865 1866 func (x *RunTargetConfig) GetWaitUntilReady() bool { 1867 if x != nil { 1868 return x.WaitUntilReady 1869 } 1870 return false 1871 } 1872 1873 func (x *RunTargetConfig) GetMsgTimeout() *durationpb.Duration { 1874 if x != nil { 1875 return x.MsgTimeout 1876 } 1877 return nil 1878 } 1879 1880 func (x *RunTargetConfig) GetSystemServicesTimeout() *durationpb.Duration { 1881 if x != nil { 1882 return x.SystemServicesTimeout 1883 } 1884 return nil 1885 } 1886 1887 func (x *RunTargetConfig) GetWaitUntilReadyTimeout() *durationpb.Duration { 1888 if x != nil { 1889 return x.WaitUntilReadyTimeout 1890 } 1891 return nil 1892 } 1893 1894 func (x *RunTargetConfig) GetSwarmingTaskID() string { 1895 if x != nil { 1896 return x.SwarmingTaskID 1897 } 1898 return "" 1899 } 1900 1901 func (x *RunTargetConfig) GetBuildBucketID() string { 1902 if x != nil { 1903 return x.BuildBucketID 1904 } 1905 return "" 1906 } 1907 1908 // RunDirectories holds several directory paths important for running tests. 1909 type RunDirectories struct { 1910 state protoimpl.MessageState 1911 sizeCache protoimpl.SizeCache 1912 unknownFields protoimpl.UnknownFields 1913 1914 // DataDir is the path to the directory containing test data files. 1915 DataDir string `protobuf:"bytes,1,opt,name=data_dir,json=dataDir,proto3" json:"data_dir,omitempty"` 1916 // OutDir is the path to the base directory under which tests should write 1917 // output files. 1918 OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` 1919 // TempDir is the path to the directory under which temporary files for tests 1920 // are written. 1921 TempDir string `protobuf:"bytes,3,opt,name=temp_dir,json=tempDir,proto3" json:"temp_dir,omitempty"` 1922 } 1923 1924 func (x *RunDirectories) Reset() { 1925 *x = RunDirectories{} 1926 if protoimpl.UnsafeEnabled { 1927 mi := &file_testing_proto_msgTypes[24] 1928 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1929 ms.StoreMessageInfo(mi) 1930 } 1931 } 1932 1933 func (x *RunDirectories) String() string { 1934 return protoimpl.X.MessageStringOf(x) 1935 } 1936 1937 func (*RunDirectories) ProtoMessage() {} 1938 1939 func (x *RunDirectories) ProtoReflect() protoreflect.Message { 1940 mi := &file_testing_proto_msgTypes[24] 1941 if protoimpl.UnsafeEnabled && x != nil { 1942 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1943 if ms.LoadMessageInfo() == nil { 1944 ms.StoreMessageInfo(mi) 1945 } 1946 return ms 1947 } 1948 return mi.MessageOf(x) 1949 } 1950 1951 // Deprecated: Use RunDirectories.ProtoReflect.Descriptor instead. 1952 func (*RunDirectories) Descriptor() ([]byte, []int) { 1953 return file_testing_proto_rawDescGZIP(), []int{24} 1954 } 1955 1956 func (x *RunDirectories) GetDataDir() string { 1957 if x != nil { 1958 return x.DataDir 1959 } 1960 return "" 1961 } 1962 1963 func (x *RunDirectories) GetOutDir() string { 1964 if x != nil { 1965 return x.OutDir 1966 } 1967 return "" 1968 } 1969 1970 func (x *RunDirectories) GetTempDir() string { 1971 if x != nil { 1972 return x.TempDir 1973 } 1974 return "" 1975 } 1976 1977 // ServiceConfig contains configurations of external services available to 1978 // Tast framework and Tast tests. 1979 type ServiceConfig struct { 1980 state protoimpl.MessageState 1981 sizeCache protoimpl.SizeCache 1982 unknownFields protoimpl.UnknownFields 1983 1984 // Devservers is a list of devserver URLs (e.g. "https://1.2.3.4:5678"). 1985 // Devservers are used to download data files from Google Cloud Storage with 1986 // cache. It is ignored if DUT Server is available. 1987 Devservers []string `protobuf:"bytes,1,rep,name=devservers,proto3" json:"devservers,omitempty"` 1988 // TlwServer is an address of a TLW server (e.g. "1.2.3.4:5678"). 1989 // When this is set, it takes precedence over Devservers. 1990 // Note: Obsolete. 1991 TlwServer string `protobuf:"bytes,2,opt,name=tlw_server,json=tlwServer,proto3" json:"tlw_server,omitempty"` 1992 // TlwSelfName is a "DUT name" that identifies the current machine. 1993 // It is empty for remote tests. 1994 // Note: Obsolete. 1995 TlwSelfName string `protobuf:"bytes,3,opt,name=tlw_self_name,json=tlwSelfName,proto3" json:"tlw_self_name,omitempty"` 1996 // TlwPrimaryTargetName is a "DUT name" of the primary target. 1997 // It is empty if a primary target doesn't exist. 1998 // Note: Obsolete. 1999 TlwPrimaryTargetName string `protobuf:"bytes,4,opt,name=tlw_primary_target_name,json=tlwPrimaryTargetName,proto3" json:"tlw_primary_target_name,omitempty"` 2000 // DutServer is an address of a DUT server (e.g. "1.2.3.4:5678"). 2001 // When this is set, it takes precedence over Devservers. 2002 DutServer string `protobuf:"bytes,5,opt,name=dut_server,json=dutServer,proto3" json:"dut_server,omitempty"` 2003 // UseEphemeralDevserer instructs whether to use ephemeral devserver. 2004 UseEphemeralDevservers bool `protobuf:"varint,6,opt,name=use_ephemeral_devservers,json=useEphemeralDevservers,proto3" json:"use_ephemeral_devservers,omitempty"` 2005 // TastDir used to specify cache directory. 2006 TastDir string `protobuf:"bytes,7,opt,name=tast_dir,json=tastDir,proto3" json:"tast_dir,omitempty"` 2007 // ExtraAllowedBuckets specifies ephemeral devserver's allowed buckets. 2008 ExtraAllowedBuckets []string `protobuf:"bytes,8,rep,name=extra_allowed_buckets,json=extraAllowedBuckets,proto3" json:"extra_allowed_buckets,omitempty"` 2009 // SwarmingTaskID specifies the swarming task ID of the scheduled 2010 // job that run Tast tests. 2011 SwarmingTaskID string `protobuf:"bytes,9,opt,name=SwarmingTaskID,proto3" json:"SwarmingTaskID,omitempty"` 2012 // BuildBucketID specifies the build bucket ID of the scheduled 2013 // job that run Tast tests. 2014 BuildBucketID string `protobuf:"bytes,10,opt,name=BuildBucketID,proto3" json:"BuildBucketID,omitempty"` 2015 } 2016 2017 func (x *ServiceConfig) Reset() { 2018 *x = ServiceConfig{} 2019 if protoimpl.UnsafeEnabled { 2020 mi := &file_testing_proto_msgTypes[25] 2021 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2022 ms.StoreMessageInfo(mi) 2023 } 2024 } 2025 2026 func (x *ServiceConfig) String() string { 2027 return protoimpl.X.MessageStringOf(x) 2028 } 2029 2030 func (*ServiceConfig) ProtoMessage() {} 2031 2032 func (x *ServiceConfig) ProtoReflect() protoreflect.Message { 2033 mi := &file_testing_proto_msgTypes[25] 2034 if protoimpl.UnsafeEnabled && x != nil { 2035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2036 if ms.LoadMessageInfo() == nil { 2037 ms.StoreMessageInfo(mi) 2038 } 2039 return ms 2040 } 2041 return mi.MessageOf(x) 2042 } 2043 2044 // Deprecated: Use ServiceConfig.ProtoReflect.Descriptor instead. 2045 func (*ServiceConfig) Descriptor() ([]byte, []int) { 2046 return file_testing_proto_rawDescGZIP(), []int{25} 2047 } 2048 2049 func (x *ServiceConfig) GetDevservers() []string { 2050 if x != nil { 2051 return x.Devservers 2052 } 2053 return nil 2054 } 2055 2056 func (x *ServiceConfig) GetTlwServer() string { 2057 if x != nil { 2058 return x.TlwServer 2059 } 2060 return "" 2061 } 2062 2063 func (x *ServiceConfig) GetTlwSelfName() string { 2064 if x != nil { 2065 return x.TlwSelfName 2066 } 2067 return "" 2068 } 2069 2070 func (x *ServiceConfig) GetTlwPrimaryTargetName() string { 2071 if x != nil { 2072 return x.TlwPrimaryTargetName 2073 } 2074 return "" 2075 } 2076 2077 func (x *ServiceConfig) GetDutServer() string { 2078 if x != nil { 2079 return x.DutServer 2080 } 2081 return "" 2082 } 2083 2084 func (x *ServiceConfig) GetUseEphemeralDevservers() bool { 2085 if x != nil { 2086 return x.UseEphemeralDevservers 2087 } 2088 return false 2089 } 2090 2091 func (x *ServiceConfig) GetTastDir() string { 2092 if x != nil { 2093 return x.TastDir 2094 } 2095 return "" 2096 } 2097 2098 func (x *ServiceConfig) GetExtraAllowedBuckets() []string { 2099 if x != nil { 2100 return x.ExtraAllowedBuckets 2101 } 2102 return nil 2103 } 2104 2105 func (x *ServiceConfig) GetSwarmingTaskID() string { 2106 if x != nil { 2107 return x.SwarmingTaskID 2108 } 2109 return "" 2110 } 2111 2112 func (x *ServiceConfig) GetBuildBucketID() string { 2113 if x != nil { 2114 return x.BuildBucketID 2115 } 2116 return "" 2117 } 2118 2119 // DataFileConfig contains configurations about data files. 2120 type DataFileConfig struct { 2121 state protoimpl.MessageState 2122 sizeCache protoimpl.SizeCache 2123 unknownFields protoimpl.UnknownFields 2124 2125 DownloadMode DownloadMode `protobuf:"varint,1,opt,name=download_mode,json=downloadMode,proto3,enum=tast.core.DownloadMode" json:"download_mode,omitempty"` 2126 // BuildArtifactsUrl is the URL of Google Cloud Storage directory, ending with 2127 // a slash, containing build artifacts for the current ChromeOS image. 2128 BuildArtifactsUrl string `protobuf:"bytes,2,opt,name=build_artifacts_url,json=buildArtifactsUrl,proto3" json:"build_artifacts_url,omitempty"` 2129 } 2130 2131 func (x *DataFileConfig) Reset() { 2132 *x = DataFileConfig{} 2133 if protoimpl.UnsafeEnabled { 2134 mi := &file_testing_proto_msgTypes[26] 2135 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2136 ms.StoreMessageInfo(mi) 2137 } 2138 } 2139 2140 func (x *DataFileConfig) String() string { 2141 return protoimpl.X.MessageStringOf(x) 2142 } 2143 2144 func (*DataFileConfig) ProtoMessage() {} 2145 2146 func (x *DataFileConfig) ProtoReflect() protoreflect.Message { 2147 mi := &file_testing_proto_msgTypes[26] 2148 if protoimpl.UnsafeEnabled && x != nil { 2149 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2150 if ms.LoadMessageInfo() == nil { 2151 ms.StoreMessageInfo(mi) 2152 } 2153 return ms 2154 } 2155 return mi.MessageOf(x) 2156 } 2157 2158 // Deprecated: Use DataFileConfig.ProtoReflect.Descriptor instead. 2159 func (*DataFileConfig) Descriptor() ([]byte, []int) { 2160 return file_testing_proto_rawDescGZIP(), []int{26} 2161 } 2162 2163 func (x *DataFileConfig) GetDownloadMode() DownloadMode { 2164 if x != nil { 2165 return x.DownloadMode 2166 } 2167 return DownloadMode_BATCH 2168 } 2169 2170 func (x *DataFileConfig) GetBuildArtifactsUrl() string { 2171 if x != nil { 2172 return x.BuildArtifactsUrl 2173 } 2174 return "" 2175 } 2176 2177 // StartFixtureState contains information of a start fixture. 2178 type StartFixtureState struct { 2179 state protoimpl.MessageState 2180 sizeCache protoimpl.SizeCache 2181 unknownFields protoimpl.UnknownFields 2182 2183 // Name is the name of a start fixture. 2184 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2185 // Errors contains errors reported on dependent fixture setup. If it is not 2186 // empty, all fixtures and tests should fail immediately. 2187 Errors []*Error `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` 2188 } 2189 2190 func (x *StartFixtureState) Reset() { 2191 *x = StartFixtureState{} 2192 if protoimpl.UnsafeEnabled { 2193 mi := &file_testing_proto_msgTypes[27] 2194 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2195 ms.StoreMessageInfo(mi) 2196 } 2197 } 2198 2199 func (x *StartFixtureState) String() string { 2200 return protoimpl.X.MessageStringOf(x) 2201 } 2202 2203 func (*StartFixtureState) ProtoMessage() {} 2204 2205 func (x *StartFixtureState) ProtoReflect() protoreflect.Message { 2206 mi := &file_testing_proto_msgTypes[27] 2207 if protoimpl.UnsafeEnabled && x != nil { 2208 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2209 if ms.LoadMessageInfo() == nil { 2210 ms.StoreMessageInfo(mi) 2211 } 2212 return ms 2213 } 2214 return mi.MessageOf(x) 2215 } 2216 2217 // Deprecated: Use StartFixtureState.ProtoReflect.Descriptor instead. 2218 func (*StartFixtureState) Descriptor() ([]byte, []int) { 2219 return file_testing_proto_rawDescGZIP(), []int{27} 2220 } 2221 2222 func (x *StartFixtureState) GetName() string { 2223 if x != nil { 2224 return x.Name 2225 } 2226 return "" 2227 } 2228 2229 func (x *StartFixtureState) GetErrors() []*Error { 2230 if x != nil { 2231 return x.Errors 2232 } 2233 return nil 2234 } 2235 2236 // Error describes details of an error reported by an entity. 2237 type Error struct { 2238 state protoimpl.MessageState 2239 sizeCache protoimpl.SizeCache 2240 unknownFields protoimpl.UnknownFields 2241 2242 Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` 2243 Location *ErrorLocation `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"` 2244 } 2245 2246 func (x *Error) Reset() { 2247 *x = Error{} 2248 if protoimpl.UnsafeEnabled { 2249 mi := &file_testing_proto_msgTypes[28] 2250 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2251 ms.StoreMessageInfo(mi) 2252 } 2253 } 2254 2255 func (x *Error) String() string { 2256 return protoimpl.X.MessageStringOf(x) 2257 } 2258 2259 func (*Error) ProtoMessage() {} 2260 2261 func (x *Error) ProtoReflect() protoreflect.Message { 2262 mi := &file_testing_proto_msgTypes[28] 2263 if protoimpl.UnsafeEnabled && x != nil { 2264 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2265 if ms.LoadMessageInfo() == nil { 2266 ms.StoreMessageInfo(mi) 2267 } 2268 return ms 2269 } 2270 return mi.MessageOf(x) 2271 } 2272 2273 // Deprecated: Use Error.ProtoReflect.Descriptor instead. 2274 func (*Error) Descriptor() ([]byte, []int) { 2275 return file_testing_proto_rawDescGZIP(), []int{28} 2276 } 2277 2278 func (x *Error) GetReason() string { 2279 if x != nil { 2280 return x.Reason 2281 } 2282 return "" 2283 } 2284 2285 func (x *Error) GetLocation() *ErrorLocation { 2286 if x != nil { 2287 return x.Location 2288 } 2289 return nil 2290 } 2291 2292 // ErrorLocation represents a code location where an error was reported. 2293 type ErrorLocation struct { 2294 state protoimpl.MessageState 2295 sizeCache protoimpl.SizeCache 2296 unknownFields protoimpl.UnknownFields 2297 2298 File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` 2299 Line int64 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"` 2300 Stack string `protobuf:"bytes,3,opt,name=stack,proto3" json:"stack,omitempty"` 2301 } 2302 2303 func (x *ErrorLocation) Reset() { 2304 *x = ErrorLocation{} 2305 if protoimpl.UnsafeEnabled { 2306 mi := &file_testing_proto_msgTypes[29] 2307 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2308 ms.StoreMessageInfo(mi) 2309 } 2310 } 2311 2312 func (x *ErrorLocation) String() string { 2313 return protoimpl.X.MessageStringOf(x) 2314 } 2315 2316 func (*ErrorLocation) ProtoMessage() {} 2317 2318 func (x *ErrorLocation) ProtoReflect() protoreflect.Message { 2319 mi := &file_testing_proto_msgTypes[29] 2320 if protoimpl.UnsafeEnabled && x != nil { 2321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2322 if ms.LoadMessageInfo() == nil { 2323 ms.StoreMessageInfo(mi) 2324 } 2325 return ms 2326 } 2327 return mi.MessageOf(x) 2328 } 2329 2330 // Deprecated: Use ErrorLocation.ProtoReflect.Descriptor instead. 2331 func (*ErrorLocation) Descriptor() ([]byte, []int) { 2332 return file_testing_proto_rawDescGZIP(), []int{29} 2333 } 2334 2335 func (x *ErrorLocation) GetFile() string { 2336 if x != nil { 2337 return x.File 2338 } 2339 return "" 2340 } 2341 2342 func (x *ErrorLocation) GetLine() int64 { 2343 if x != nil { 2344 return x.Line 2345 } 2346 return 0 2347 } 2348 2349 func (x *ErrorLocation) GetStack() string { 2350 if x != nil { 2351 return x.Stack 2352 } 2353 return "" 2354 } 2355 2356 // ResolvedEntity is similar to Entity, but contains additional fields computed 2357 // from an original Entity and run time information. 2358 type ResolvedEntity struct { 2359 state protoimpl.MessageState 2360 sizeCache protoimpl.SizeCache 2361 unknownFields protoimpl.UnknownFields 2362 2363 Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` 2364 // Skips contains reasons why this test should be skipped. If it contains one 2365 // or more reasons, the test should be skipped for unsatisfied dependencies. 2366 // This field can be set only if the entity is a test. 2367 Skip *Skip `protobuf:"bytes,2,opt,name=skip,proto3" json:"skip,omitempty"` 2368 // Hops contains the number of remote connection hops from the current machine 2369 // and the machine serving the entity. 2370 // On the host machine, hops=0 means remote entities (on the host machine) and 2371 // hops=1 means local entities (on the DUT). 2372 Hops int32 `protobuf:"varint,3,opt,name=hops,proto3" json:"hops,omitempty"` 2373 // StartFixtureName is the name of the fixture that needs to be set up 2374 // externally in order to run this entity. 2375 StartFixtureName string `protobuf:"bytes,4,opt,name=start_fixture_name,json=startFixtureName,proto3" json:"start_fixture_name,omitempty"` 2376 } 2377 2378 func (x *ResolvedEntity) Reset() { 2379 *x = ResolvedEntity{} 2380 if protoimpl.UnsafeEnabled { 2381 mi := &file_testing_proto_msgTypes[30] 2382 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2383 ms.StoreMessageInfo(mi) 2384 } 2385 } 2386 2387 func (x *ResolvedEntity) String() string { 2388 return protoimpl.X.MessageStringOf(x) 2389 } 2390 2391 func (*ResolvedEntity) ProtoMessage() {} 2392 2393 func (x *ResolvedEntity) ProtoReflect() protoreflect.Message { 2394 mi := &file_testing_proto_msgTypes[30] 2395 if protoimpl.UnsafeEnabled && x != nil { 2396 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2397 if ms.LoadMessageInfo() == nil { 2398 ms.StoreMessageInfo(mi) 2399 } 2400 return ms 2401 } 2402 return mi.MessageOf(x) 2403 } 2404 2405 // Deprecated: Use ResolvedEntity.ProtoReflect.Descriptor instead. 2406 func (*ResolvedEntity) Descriptor() ([]byte, []int) { 2407 return file_testing_proto_rawDescGZIP(), []int{30} 2408 } 2409 2410 func (x *ResolvedEntity) GetEntity() *Entity { 2411 if x != nil { 2412 return x.Entity 2413 } 2414 return nil 2415 } 2416 2417 func (x *ResolvedEntity) GetSkip() *Skip { 2418 if x != nil { 2419 return x.Skip 2420 } 2421 return nil 2422 } 2423 2424 func (x *ResolvedEntity) GetHops() int32 { 2425 if x != nil { 2426 return x.Hops 2427 } 2428 return 0 2429 } 2430 2431 func (x *ResolvedEntity) GetStartFixtureName() string { 2432 if x != nil { 2433 return x.StartFixtureName 2434 } 2435 return "" 2436 } 2437 2438 // TimingLog is a protobuf presentation of a timing.Log. 2439 type TimingLog struct { 2440 state protoimpl.MessageState 2441 sizeCache protoimpl.SizeCache 2442 unknownFields protoimpl.UnknownFields 2443 2444 Root *TimingStage `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"` 2445 } 2446 2447 func (x *TimingLog) Reset() { 2448 *x = TimingLog{} 2449 if protoimpl.UnsafeEnabled { 2450 mi := &file_testing_proto_msgTypes[31] 2451 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2452 ms.StoreMessageInfo(mi) 2453 } 2454 } 2455 2456 func (x *TimingLog) String() string { 2457 return protoimpl.X.MessageStringOf(x) 2458 } 2459 2460 func (*TimingLog) ProtoMessage() {} 2461 2462 func (x *TimingLog) ProtoReflect() protoreflect.Message { 2463 mi := &file_testing_proto_msgTypes[31] 2464 if protoimpl.UnsafeEnabled && x != nil { 2465 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2466 if ms.LoadMessageInfo() == nil { 2467 ms.StoreMessageInfo(mi) 2468 } 2469 return ms 2470 } 2471 return mi.MessageOf(x) 2472 } 2473 2474 // Deprecated: Use TimingLog.ProtoReflect.Descriptor instead. 2475 func (*TimingLog) Descriptor() ([]byte, []int) { 2476 return file_testing_proto_rawDescGZIP(), []int{31} 2477 } 2478 2479 func (x *TimingLog) GetRoot() *TimingStage { 2480 if x != nil { 2481 return x.Root 2482 } 2483 return nil 2484 } 2485 2486 // TimingStage is a protobuf presentation of a completed timing.Stage. 2487 type TimingStage struct { 2488 state protoimpl.MessageState 2489 sizeCache protoimpl.SizeCache 2490 unknownFields protoimpl.UnknownFields 2491 2492 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2493 StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 2494 EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 2495 Children []*TimingStage `protobuf:"bytes,4,rep,name=children,proto3" json:"children,omitempty"` 2496 } 2497 2498 func (x *TimingStage) Reset() { 2499 *x = TimingStage{} 2500 if protoimpl.UnsafeEnabled { 2501 mi := &file_testing_proto_msgTypes[32] 2502 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2503 ms.StoreMessageInfo(mi) 2504 } 2505 } 2506 2507 func (x *TimingStage) String() string { 2508 return protoimpl.X.MessageStringOf(x) 2509 } 2510 2511 func (*TimingStage) ProtoMessage() {} 2512 2513 func (x *TimingStage) ProtoReflect() protoreflect.Message { 2514 mi := &file_testing_proto_msgTypes[32] 2515 if protoimpl.UnsafeEnabled && x != nil { 2516 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2517 if ms.LoadMessageInfo() == nil { 2518 ms.StoreMessageInfo(mi) 2519 } 2520 return ms 2521 } 2522 return mi.MessageOf(x) 2523 } 2524 2525 // Deprecated: Use TimingStage.ProtoReflect.Descriptor instead. 2526 func (*TimingStage) Descriptor() ([]byte, []int) { 2527 return file_testing_proto_rawDescGZIP(), []int{32} 2528 } 2529 2530 func (x *TimingStage) GetName() string { 2531 if x != nil { 2532 return x.Name 2533 } 2534 return "" 2535 } 2536 2537 func (x *TimingStage) GetStartTime() *timestamppb.Timestamp { 2538 if x != nil { 2539 return x.StartTime 2540 } 2541 return nil 2542 } 2543 2544 func (x *TimingStage) GetEndTime() *timestamppb.Timestamp { 2545 if x != nil { 2546 return x.EndTime 2547 } 2548 return nil 2549 } 2550 2551 func (x *TimingStage) GetChildren() []*TimingStage { 2552 if x != nil { 2553 return x.Children 2554 } 2555 return nil 2556 } 2557 2558 // RunLogEvent indicates that an informational log message not associated with 2559 // an entity was produced. 2560 type RunLogEvent struct { 2561 state protoimpl.MessageState 2562 sizeCache protoimpl.SizeCache 2563 unknownFields protoimpl.UnknownFields 2564 2565 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 2566 Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` 2567 } 2568 2569 func (x *RunLogEvent) Reset() { 2570 *x = RunLogEvent{} 2571 if protoimpl.UnsafeEnabled { 2572 mi := &file_testing_proto_msgTypes[33] 2573 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2574 ms.StoreMessageInfo(mi) 2575 } 2576 } 2577 2578 func (x *RunLogEvent) String() string { 2579 return protoimpl.X.MessageStringOf(x) 2580 } 2581 2582 func (*RunLogEvent) ProtoMessage() {} 2583 2584 func (x *RunLogEvent) ProtoReflect() protoreflect.Message { 2585 mi := &file_testing_proto_msgTypes[33] 2586 if protoimpl.UnsafeEnabled && x != nil { 2587 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2588 if ms.LoadMessageInfo() == nil { 2589 ms.StoreMessageInfo(mi) 2590 } 2591 return ms 2592 } 2593 return mi.MessageOf(x) 2594 } 2595 2596 // Deprecated: Use RunLogEvent.ProtoReflect.Descriptor instead. 2597 func (*RunLogEvent) Descriptor() ([]byte, []int) { 2598 return file_testing_proto_rawDescGZIP(), []int{33} 2599 } 2600 2601 func (x *RunLogEvent) GetTime() *timestamppb.Timestamp { 2602 if x != nil { 2603 return x.Time 2604 } 2605 return nil 2606 } 2607 2608 func (x *RunLogEvent) GetText() string { 2609 if x != nil { 2610 return x.Text 2611 } 2612 return "" 2613 } 2614 2615 // EntityStartEvent marks the start of an entity run. EntityStartEvent is sent 2616 // even if an entity is to be skipped. 2617 type EntityStartEvent struct { 2618 state protoimpl.MessageState 2619 sizeCache protoimpl.SizeCache 2620 unknownFields protoimpl.UnknownFields 2621 2622 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 2623 Entity *Entity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` 2624 OutDir string `protobuf:"bytes,3,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` 2625 } 2626 2627 func (x *EntityStartEvent) Reset() { 2628 *x = EntityStartEvent{} 2629 if protoimpl.UnsafeEnabled { 2630 mi := &file_testing_proto_msgTypes[34] 2631 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2632 ms.StoreMessageInfo(mi) 2633 } 2634 } 2635 2636 func (x *EntityStartEvent) String() string { 2637 return protoimpl.X.MessageStringOf(x) 2638 } 2639 2640 func (*EntityStartEvent) ProtoMessage() {} 2641 2642 func (x *EntityStartEvent) ProtoReflect() protoreflect.Message { 2643 mi := &file_testing_proto_msgTypes[34] 2644 if protoimpl.UnsafeEnabled && x != nil { 2645 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2646 if ms.LoadMessageInfo() == nil { 2647 ms.StoreMessageInfo(mi) 2648 } 2649 return ms 2650 } 2651 return mi.MessageOf(x) 2652 } 2653 2654 // Deprecated: Use EntityStartEvent.ProtoReflect.Descriptor instead. 2655 func (*EntityStartEvent) Descriptor() ([]byte, []int) { 2656 return file_testing_proto_rawDescGZIP(), []int{34} 2657 } 2658 2659 func (x *EntityStartEvent) GetTime() *timestamppb.Timestamp { 2660 if x != nil { 2661 return x.Time 2662 } 2663 return nil 2664 } 2665 2666 func (x *EntityStartEvent) GetEntity() *Entity { 2667 if x != nil { 2668 return x.Entity 2669 } 2670 return nil 2671 } 2672 2673 func (x *EntityStartEvent) GetOutDir() string { 2674 if x != nil { 2675 return x.OutDir 2676 } 2677 return "" 2678 } 2679 2680 // EntityLogEvent indicates that an informational log message was produced by 2681 // an entity. 2682 type EntityLogEvent struct { 2683 state protoimpl.MessageState 2684 sizeCache protoimpl.SizeCache 2685 unknownFields protoimpl.UnknownFields 2686 2687 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 2688 EntityName string `protobuf:"bytes,2,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` 2689 Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` 2690 } 2691 2692 func (x *EntityLogEvent) Reset() { 2693 *x = EntityLogEvent{} 2694 if protoimpl.UnsafeEnabled { 2695 mi := &file_testing_proto_msgTypes[35] 2696 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2697 ms.StoreMessageInfo(mi) 2698 } 2699 } 2700 2701 func (x *EntityLogEvent) String() string { 2702 return protoimpl.X.MessageStringOf(x) 2703 } 2704 2705 func (*EntityLogEvent) ProtoMessage() {} 2706 2707 func (x *EntityLogEvent) ProtoReflect() protoreflect.Message { 2708 mi := &file_testing_proto_msgTypes[35] 2709 if protoimpl.UnsafeEnabled && x != nil { 2710 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2711 if ms.LoadMessageInfo() == nil { 2712 ms.StoreMessageInfo(mi) 2713 } 2714 return ms 2715 } 2716 return mi.MessageOf(x) 2717 } 2718 2719 // Deprecated: Use EntityLogEvent.ProtoReflect.Descriptor instead. 2720 func (*EntityLogEvent) Descriptor() ([]byte, []int) { 2721 return file_testing_proto_rawDescGZIP(), []int{35} 2722 } 2723 2724 func (x *EntityLogEvent) GetTime() *timestamppb.Timestamp { 2725 if x != nil { 2726 return x.Time 2727 } 2728 return nil 2729 } 2730 2731 func (x *EntityLogEvent) GetEntityName() string { 2732 if x != nil { 2733 return x.EntityName 2734 } 2735 return "" 2736 } 2737 2738 func (x *EntityLogEvent) GetText() string { 2739 if x != nil { 2740 return x.Text 2741 } 2742 return "" 2743 } 2744 2745 // EntityErrorEvent indicates that an error was produced by an entity. 2746 // A consumer should treat an entity as failed when it sees one or more errors 2747 // reported for it. 2748 type EntityErrorEvent struct { 2749 state protoimpl.MessageState 2750 sizeCache protoimpl.SizeCache 2751 unknownFields protoimpl.UnknownFields 2752 2753 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 2754 EntityName string `protobuf:"bytes,2,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` 2755 Error *Error `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` 2756 } 2757 2758 func (x *EntityErrorEvent) Reset() { 2759 *x = EntityErrorEvent{} 2760 if protoimpl.UnsafeEnabled { 2761 mi := &file_testing_proto_msgTypes[36] 2762 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2763 ms.StoreMessageInfo(mi) 2764 } 2765 } 2766 2767 func (x *EntityErrorEvent) String() string { 2768 return protoimpl.X.MessageStringOf(x) 2769 } 2770 2771 func (*EntityErrorEvent) ProtoMessage() {} 2772 2773 func (x *EntityErrorEvent) ProtoReflect() protoreflect.Message { 2774 mi := &file_testing_proto_msgTypes[36] 2775 if protoimpl.UnsafeEnabled && x != nil { 2776 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2777 if ms.LoadMessageInfo() == nil { 2778 ms.StoreMessageInfo(mi) 2779 } 2780 return ms 2781 } 2782 return mi.MessageOf(x) 2783 } 2784 2785 // Deprecated: Use EntityErrorEvent.ProtoReflect.Descriptor instead. 2786 func (*EntityErrorEvent) Descriptor() ([]byte, []int) { 2787 return file_testing_proto_rawDescGZIP(), []int{36} 2788 } 2789 2790 func (x *EntityErrorEvent) GetTime() *timestamppb.Timestamp { 2791 if x != nil { 2792 return x.Time 2793 } 2794 return nil 2795 } 2796 2797 func (x *EntityErrorEvent) GetEntityName() string { 2798 if x != nil { 2799 return x.EntityName 2800 } 2801 return "" 2802 } 2803 2804 func (x *EntityErrorEvent) GetError() *Error { 2805 if x != nil { 2806 return x.Error 2807 } 2808 return nil 2809 } 2810 2811 // EntityEndEvent marks the end of an entity run. 2812 type EntityEndEvent struct { 2813 state protoimpl.MessageState 2814 sizeCache protoimpl.SizeCache 2815 unknownFields protoimpl.UnknownFields 2816 2817 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 2818 EntityName string `protobuf:"bytes,2,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` 2819 Skip *Skip `protobuf:"bytes,3,opt,name=skip,proto3" json:"skip,omitempty"` 2820 TimingLog *TimingLog `protobuf:"bytes,4,opt,name=timing_log,json=timingLog,proto3" json:"timing_log,omitempty"` 2821 } 2822 2823 func (x *EntityEndEvent) Reset() { 2824 *x = EntityEndEvent{} 2825 if protoimpl.UnsafeEnabled { 2826 mi := &file_testing_proto_msgTypes[37] 2827 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2828 ms.StoreMessageInfo(mi) 2829 } 2830 } 2831 2832 func (x *EntityEndEvent) String() string { 2833 return protoimpl.X.MessageStringOf(x) 2834 } 2835 2836 func (*EntityEndEvent) ProtoMessage() {} 2837 2838 func (x *EntityEndEvent) ProtoReflect() protoreflect.Message { 2839 mi := &file_testing_proto_msgTypes[37] 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 EntityEndEvent.ProtoReflect.Descriptor instead. 2851 func (*EntityEndEvent) Descriptor() ([]byte, []int) { 2852 return file_testing_proto_rawDescGZIP(), []int{37} 2853 } 2854 2855 func (x *EntityEndEvent) GetTime() *timestamppb.Timestamp { 2856 if x != nil { 2857 return x.Time 2858 } 2859 return nil 2860 } 2861 2862 func (x *EntityEndEvent) GetEntityName() string { 2863 if x != nil { 2864 return x.EntityName 2865 } 2866 return "" 2867 } 2868 2869 func (x *EntityEndEvent) GetSkip() *Skip { 2870 if x != nil { 2871 return x.Skip 2872 } 2873 return nil 2874 } 2875 2876 func (x *EntityEndEvent) GetTimingLog() *TimingLog { 2877 if x != nil { 2878 return x.TimingLog 2879 } 2880 return nil 2881 } 2882 2883 // EntityCopyEndEvent marks the end of an file copies after entity ends. 2884 type EntityCopyEndEvent struct { 2885 state protoimpl.MessageState 2886 sizeCache protoimpl.SizeCache 2887 unknownFields protoimpl.UnknownFields 2888 2889 EntityName string `protobuf:"bytes,1,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` 2890 } 2891 2892 func (x *EntityCopyEndEvent) Reset() { 2893 *x = EntityCopyEndEvent{} 2894 if protoimpl.UnsafeEnabled { 2895 mi := &file_testing_proto_msgTypes[38] 2896 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2897 ms.StoreMessageInfo(mi) 2898 } 2899 } 2900 2901 func (x *EntityCopyEndEvent) String() string { 2902 return protoimpl.X.MessageStringOf(x) 2903 } 2904 2905 func (*EntityCopyEndEvent) ProtoMessage() {} 2906 2907 func (x *EntityCopyEndEvent) ProtoReflect() protoreflect.Message { 2908 mi := &file_testing_proto_msgTypes[38] 2909 if protoimpl.UnsafeEnabled && x != nil { 2910 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2911 if ms.LoadMessageInfo() == nil { 2912 ms.StoreMessageInfo(mi) 2913 } 2914 return ms 2915 } 2916 return mi.MessageOf(x) 2917 } 2918 2919 // Deprecated: Use EntityCopyEndEvent.ProtoReflect.Descriptor instead. 2920 func (*EntityCopyEndEvent) Descriptor() ([]byte, []int) { 2921 return file_testing_proto_rawDescGZIP(), []int{38} 2922 } 2923 2924 func (x *EntityCopyEndEvent) GetEntityName() string { 2925 if x != nil { 2926 return x.EntityName 2927 } 2928 return "" 2929 } 2930 2931 // Skip describes the reasons why an entity is skipped. 2932 type Skip struct { 2933 state protoimpl.MessageState 2934 sizeCache protoimpl.SizeCache 2935 unknownFields protoimpl.UnknownFields 2936 2937 Reasons []string `protobuf:"bytes,1,rep,name=reasons,proto3" json:"reasons,omitempty"` 2938 } 2939 2940 func (x *Skip) Reset() { 2941 *x = Skip{} 2942 if protoimpl.UnsafeEnabled { 2943 mi := &file_testing_proto_msgTypes[39] 2944 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2945 ms.StoreMessageInfo(mi) 2946 } 2947 } 2948 2949 func (x *Skip) String() string { 2950 return protoimpl.X.MessageStringOf(x) 2951 } 2952 2953 func (*Skip) ProtoMessage() {} 2954 2955 func (x *Skip) ProtoReflect() protoreflect.Message { 2956 mi := &file_testing_proto_msgTypes[39] 2957 if protoimpl.UnsafeEnabled && x != nil { 2958 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2959 if ms.LoadMessageInfo() == nil { 2960 ms.StoreMessageInfo(mi) 2961 } 2962 return ms 2963 } 2964 return mi.MessageOf(x) 2965 } 2966 2967 // Deprecated: Use Skip.ProtoReflect.Descriptor instead. 2968 func (*Skip) Descriptor() ([]byte, []int) { 2969 return file_testing_proto_rawDescGZIP(), []int{39} 2970 } 2971 2972 func (x *Skip) GetReasons() []string { 2973 if x != nil { 2974 return x.Reasons 2975 } 2976 return nil 2977 } 2978 2979 // DUTInfo holds DUT system information. 2980 type DUTInfo struct { 2981 state protoimpl.MessageState 2982 sizeCache protoimpl.SizeCache 2983 unknownFields protoimpl.UnknownFields 2984 2985 // Features contains features available on the DUT. 2986 Features *protocol.DUTFeatures `protobuf:"bytes,4,opt,name=features,proto3" json:"features,omitempty"` 2987 // OsVersion contains the DUT's OS Version. 2988 OsVersion string `protobuf:"bytes,2,opt,name=os_version,json=osVersion,proto3" json:"os_version,omitempty"` 2989 // DefaultBuildArtifactsUrl specifies the default URL of the build artifacts. 2990 DefaultBuildArtifactsUrl string `protobuf:"bytes,3,opt,name=default_build_artifacts_url,json=defaultBuildArtifactsUrl,proto3" json:"default_build_artifacts_url,omitempty"` 2991 } 2992 2993 func (x *DUTInfo) Reset() { 2994 *x = DUTInfo{} 2995 if protoimpl.UnsafeEnabled { 2996 mi := &file_testing_proto_msgTypes[40] 2997 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2998 ms.StoreMessageInfo(mi) 2999 } 3000 } 3001 3002 func (x *DUTInfo) String() string { 3003 return protoimpl.X.MessageStringOf(x) 3004 } 3005 3006 func (*DUTInfo) ProtoMessage() {} 3007 3008 func (x *DUTInfo) ProtoReflect() protoreflect.Message { 3009 mi := &file_testing_proto_msgTypes[40] 3010 if protoimpl.UnsafeEnabled && x != nil { 3011 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3012 if ms.LoadMessageInfo() == nil { 3013 ms.StoreMessageInfo(mi) 3014 } 3015 return ms 3016 } 3017 return mi.MessageOf(x) 3018 } 3019 3020 // Deprecated: Use DUTInfo.ProtoReflect.Descriptor instead. 3021 func (*DUTInfo) Descriptor() ([]byte, []int) { 3022 return file_testing_proto_rawDescGZIP(), []int{40} 3023 } 3024 3025 func (x *DUTInfo) GetFeatures() *protocol.DUTFeatures { 3026 if x != nil { 3027 return x.Features 3028 } 3029 return nil 3030 } 3031 3032 func (x *DUTInfo) GetOsVersion() string { 3033 if x != nil { 3034 return x.OsVersion 3035 } 3036 return "" 3037 } 3038 3039 func (x *DUTInfo) GetDefaultBuildArtifactsUrl() string { 3040 if x != nil { 3041 return x.DefaultBuildArtifactsUrl 3042 } 3043 return "" 3044 } 3045 3046 // SysInfoState contains the state of the DUT's system information. 3047 type SysInfoState struct { 3048 state protoimpl.MessageState 3049 sizeCache protoimpl.SizeCache 3050 unknownFields protoimpl.UnknownFields 3051 3052 // LogInodeSizes maps from each log file's inode to its size in bytes. 3053 LogInodeSizes map[uint64]int64 `protobuf:"bytes,1,rep,name=log_inode_sizes,json=logInodeSizes,proto3" json:"log_inode_sizes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 3054 // UnifiedLogCursor contains an opaque cursor pointing at the current tip of 3055 // unified system logs. 3056 UnifiedLogCursor string `protobuf:"bytes,2,opt,name=unified_log_cursor,json=unifiedLogCursor,proto3" json:"unified_log_cursor,omitempty"` 3057 // CrashFilePaths contains absolute paths to crash files. 3058 CrashFilePaths []string `protobuf:"bytes,3,rep,name=crash_file_paths,json=crashFilePaths,proto3" json:"crash_file_paths,omitempty"` 3059 } 3060 3061 func (x *SysInfoState) Reset() { 3062 *x = SysInfoState{} 3063 if protoimpl.UnsafeEnabled { 3064 mi := &file_testing_proto_msgTypes[41] 3065 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3066 ms.StoreMessageInfo(mi) 3067 } 3068 } 3069 3070 func (x *SysInfoState) String() string { 3071 return protoimpl.X.MessageStringOf(x) 3072 } 3073 3074 func (*SysInfoState) ProtoMessage() {} 3075 3076 func (x *SysInfoState) ProtoReflect() protoreflect.Message { 3077 mi := &file_testing_proto_msgTypes[41] 3078 if protoimpl.UnsafeEnabled && x != nil { 3079 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3080 if ms.LoadMessageInfo() == nil { 3081 ms.StoreMessageInfo(mi) 3082 } 3083 return ms 3084 } 3085 return mi.MessageOf(x) 3086 } 3087 3088 // Deprecated: Use SysInfoState.ProtoReflect.Descriptor instead. 3089 func (*SysInfoState) Descriptor() ([]byte, []int) { 3090 return file_testing_proto_rawDescGZIP(), []int{41} 3091 } 3092 3093 func (x *SysInfoState) GetLogInodeSizes() map[uint64]int64 { 3094 if x != nil { 3095 return x.LogInodeSizes 3096 } 3097 return nil 3098 } 3099 3100 func (x *SysInfoState) GetUnifiedLogCursor() string { 3101 if x != nil { 3102 return x.UnifiedLogCursor 3103 } 3104 return "" 3105 } 3106 3107 func (x *SysInfoState) GetCrashFilePaths() []string { 3108 if x != nil { 3109 return x.CrashFilePaths 3110 } 3111 return nil 3112 } 3113 3114 type StackOperationRequest struct { 3115 state protoimpl.MessageState 3116 sizeCache protoimpl.SizeCache 3117 unknownFields protoimpl.UnknownFields 3118 3119 // Types that are assignable to Type: 3120 // *StackOperationRequest_Reset_ 3121 // *StackOperationRequest_PreTest 3122 // *StackOperationRequest_PostTest 3123 // *StackOperationRequest_Status 3124 // *StackOperationRequest_SetDirty 3125 // *StackOperationRequest_Errors 3126 // *StackOperationRequest_Value 3127 Type isStackOperationRequest_Type `protobuf_oneof:"type"` 3128 } 3129 3130 func (x *StackOperationRequest) Reset() { 3131 *x = StackOperationRequest{} 3132 if protoimpl.UnsafeEnabled { 3133 mi := &file_testing_proto_msgTypes[42] 3134 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3135 ms.StoreMessageInfo(mi) 3136 } 3137 } 3138 3139 func (x *StackOperationRequest) String() string { 3140 return protoimpl.X.MessageStringOf(x) 3141 } 3142 3143 func (*StackOperationRequest) ProtoMessage() {} 3144 3145 func (x *StackOperationRequest) ProtoReflect() protoreflect.Message { 3146 mi := &file_testing_proto_msgTypes[42] 3147 if protoimpl.UnsafeEnabled && x != nil { 3148 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3149 if ms.LoadMessageInfo() == nil { 3150 ms.StoreMessageInfo(mi) 3151 } 3152 return ms 3153 } 3154 return mi.MessageOf(x) 3155 } 3156 3157 // Deprecated: Use StackOperationRequest.ProtoReflect.Descriptor instead. 3158 func (*StackOperationRequest) Descriptor() ([]byte, []int) { 3159 return file_testing_proto_rawDescGZIP(), []int{42} 3160 } 3161 3162 func (m *StackOperationRequest) GetType() isStackOperationRequest_Type { 3163 if m != nil { 3164 return m.Type 3165 } 3166 return nil 3167 } 3168 3169 func (x *StackOperationRequest) GetReset_() *StackReset { 3170 if x, ok := x.GetType().(*StackOperationRequest_Reset_); ok { 3171 return x.Reset_ 3172 } 3173 return nil 3174 } 3175 3176 func (x *StackOperationRequest) GetPreTest() *StackPreTest { 3177 if x, ok := x.GetType().(*StackOperationRequest_PreTest); ok { 3178 return x.PreTest 3179 } 3180 return nil 3181 } 3182 3183 func (x *StackOperationRequest) GetPostTest() *StackPostTest { 3184 if x, ok := x.GetType().(*StackOperationRequest_PostTest); ok { 3185 return x.PostTest 3186 } 3187 return nil 3188 } 3189 3190 func (x *StackOperationRequest) GetStatus() *StackGetStatus { 3191 if x, ok := x.GetType().(*StackOperationRequest_Status); ok { 3192 return x.Status 3193 } 3194 return nil 3195 } 3196 3197 func (x *StackOperationRequest) GetSetDirty() *StackSetDirty { 3198 if x, ok := x.GetType().(*StackOperationRequest_SetDirty); ok { 3199 return x.SetDirty 3200 } 3201 return nil 3202 } 3203 3204 func (x *StackOperationRequest) GetErrors() *StackGetErrors { 3205 if x, ok := x.GetType().(*StackOperationRequest_Errors); ok { 3206 return x.Errors 3207 } 3208 return nil 3209 } 3210 3211 func (x *StackOperationRequest) GetValue() *StackValue { 3212 if x, ok := x.GetType().(*StackOperationRequest_Value); ok { 3213 return x.Value 3214 } 3215 return nil 3216 } 3217 3218 type isStackOperationRequest_Type interface { 3219 isStackOperationRequest_Type() 3220 } 3221 3222 type StackOperationRequest_Reset_ struct { 3223 Reset_ *StackReset `protobuf:"bytes,1,opt,name=reset,proto3,oneof"` 3224 } 3225 3226 type StackOperationRequest_PreTest struct { 3227 PreTest *StackPreTest `protobuf:"bytes,2,opt,name=pre_test,json=preTest,proto3,oneof"` 3228 } 3229 3230 type StackOperationRequest_PostTest struct { 3231 PostTest *StackPostTest `protobuf:"bytes,3,opt,name=post_test,json=postTest,proto3,oneof"` 3232 } 3233 3234 type StackOperationRequest_Status struct { 3235 Status *StackGetStatus `protobuf:"bytes,4,opt,name=status,proto3,oneof"` 3236 } 3237 3238 type StackOperationRequest_SetDirty struct { 3239 SetDirty *StackSetDirty `protobuf:"bytes,5,opt,name=set_dirty,json=setDirty,proto3,oneof"` 3240 } 3241 3242 type StackOperationRequest_Errors struct { 3243 Errors *StackGetErrors `protobuf:"bytes,6,opt,name=errors,proto3,oneof"` 3244 } 3245 3246 type StackOperationRequest_Value struct { 3247 Value *StackValue `protobuf:"bytes,7,opt,name=value,proto3,oneof"` 3248 } 3249 3250 func (*StackOperationRequest_Reset_) isStackOperationRequest_Type() {} 3251 3252 func (*StackOperationRequest_PreTest) isStackOperationRequest_Type() {} 3253 3254 func (*StackOperationRequest_PostTest) isStackOperationRequest_Type() {} 3255 3256 func (*StackOperationRequest_Status) isStackOperationRequest_Type() {} 3257 3258 func (*StackOperationRequest_SetDirty) isStackOperationRequest_Type() {} 3259 3260 func (*StackOperationRequest_Errors) isStackOperationRequest_Type() {} 3261 3262 func (*StackOperationRequest_Value) isStackOperationRequest_Type() {} 3263 3264 type StackReset struct { 3265 state protoimpl.MessageState 3266 sizeCache protoimpl.SizeCache 3267 unknownFields protoimpl.UnknownFields 3268 } 3269 3270 func (x *StackReset) Reset() { 3271 *x = StackReset{} 3272 if protoimpl.UnsafeEnabled { 3273 mi := &file_testing_proto_msgTypes[43] 3274 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3275 ms.StoreMessageInfo(mi) 3276 } 3277 } 3278 3279 func (x *StackReset) String() string { 3280 return protoimpl.X.MessageStringOf(x) 3281 } 3282 3283 func (*StackReset) ProtoMessage() {} 3284 3285 func (x *StackReset) ProtoReflect() protoreflect.Message { 3286 mi := &file_testing_proto_msgTypes[43] 3287 if protoimpl.UnsafeEnabled && x != nil { 3288 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3289 if ms.LoadMessageInfo() == nil { 3290 ms.StoreMessageInfo(mi) 3291 } 3292 return ms 3293 } 3294 return mi.MessageOf(x) 3295 } 3296 3297 // Deprecated: Use StackReset.ProtoReflect.Descriptor instead. 3298 func (*StackReset) Descriptor() ([]byte, []int) { 3299 return file_testing_proto_rawDescGZIP(), []int{43} 3300 } 3301 3302 type StackPreTest struct { 3303 state protoimpl.MessageState 3304 sizeCache protoimpl.SizeCache 3305 unknownFields protoimpl.UnknownFields 3306 3307 Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` 3308 HasError bool `protobuf:"varint,2,opt,name=has_error,json=hasError,proto3" json:"has_error,omitempty"` 3309 } 3310 3311 func (x *StackPreTest) Reset() { 3312 *x = StackPreTest{} 3313 if protoimpl.UnsafeEnabled { 3314 mi := &file_testing_proto_msgTypes[44] 3315 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3316 ms.StoreMessageInfo(mi) 3317 } 3318 } 3319 3320 func (x *StackPreTest) String() string { 3321 return protoimpl.X.MessageStringOf(x) 3322 } 3323 3324 func (*StackPreTest) ProtoMessage() {} 3325 3326 func (x *StackPreTest) ProtoReflect() protoreflect.Message { 3327 mi := &file_testing_proto_msgTypes[44] 3328 if protoimpl.UnsafeEnabled && x != nil { 3329 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3330 if ms.LoadMessageInfo() == nil { 3331 ms.StoreMessageInfo(mi) 3332 } 3333 return ms 3334 } 3335 return mi.MessageOf(x) 3336 } 3337 3338 // Deprecated: Use StackPreTest.ProtoReflect.Descriptor instead. 3339 func (*StackPreTest) Descriptor() ([]byte, []int) { 3340 return file_testing_proto_rawDescGZIP(), []int{44} 3341 } 3342 3343 func (x *StackPreTest) GetEntity() *Entity { 3344 if x != nil { 3345 return x.Entity 3346 } 3347 return nil 3348 } 3349 3350 func (x *StackPreTest) GetHasError() bool { 3351 if x != nil { 3352 return x.HasError 3353 } 3354 return false 3355 } 3356 3357 type StackPostTest struct { 3358 state protoimpl.MessageState 3359 sizeCache protoimpl.SizeCache 3360 unknownFields protoimpl.UnknownFields 3361 3362 Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` 3363 HasError bool `protobuf:"varint,2,opt,name=has_error,json=hasError,proto3" json:"has_error,omitempty"` 3364 } 3365 3366 func (x *StackPostTest) Reset() { 3367 *x = StackPostTest{} 3368 if protoimpl.UnsafeEnabled { 3369 mi := &file_testing_proto_msgTypes[45] 3370 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3371 ms.StoreMessageInfo(mi) 3372 } 3373 } 3374 3375 func (x *StackPostTest) String() string { 3376 return protoimpl.X.MessageStringOf(x) 3377 } 3378 3379 func (*StackPostTest) ProtoMessage() {} 3380 3381 func (x *StackPostTest) ProtoReflect() protoreflect.Message { 3382 mi := &file_testing_proto_msgTypes[45] 3383 if protoimpl.UnsafeEnabled && x != nil { 3384 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3385 if ms.LoadMessageInfo() == nil { 3386 ms.StoreMessageInfo(mi) 3387 } 3388 return ms 3389 } 3390 return mi.MessageOf(x) 3391 } 3392 3393 // Deprecated: Use StackPostTest.ProtoReflect.Descriptor instead. 3394 func (*StackPostTest) Descriptor() ([]byte, []int) { 3395 return file_testing_proto_rawDescGZIP(), []int{45} 3396 } 3397 3398 func (x *StackPostTest) GetEntity() *Entity { 3399 if x != nil { 3400 return x.Entity 3401 } 3402 return nil 3403 } 3404 3405 func (x *StackPostTest) GetHasError() bool { 3406 if x != nil { 3407 return x.HasError 3408 } 3409 return false 3410 } 3411 3412 type StackGetStatus struct { 3413 state protoimpl.MessageState 3414 sizeCache protoimpl.SizeCache 3415 unknownFields protoimpl.UnknownFields 3416 } 3417 3418 func (x *StackGetStatus) Reset() { 3419 *x = StackGetStatus{} 3420 if protoimpl.UnsafeEnabled { 3421 mi := &file_testing_proto_msgTypes[46] 3422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3423 ms.StoreMessageInfo(mi) 3424 } 3425 } 3426 3427 func (x *StackGetStatus) String() string { 3428 return protoimpl.X.MessageStringOf(x) 3429 } 3430 3431 func (*StackGetStatus) ProtoMessage() {} 3432 3433 func (x *StackGetStatus) ProtoReflect() protoreflect.Message { 3434 mi := &file_testing_proto_msgTypes[46] 3435 if protoimpl.UnsafeEnabled && x != nil { 3436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3437 if ms.LoadMessageInfo() == nil { 3438 ms.StoreMessageInfo(mi) 3439 } 3440 return ms 3441 } 3442 return mi.MessageOf(x) 3443 } 3444 3445 // Deprecated: Use StackGetStatus.ProtoReflect.Descriptor instead. 3446 func (*StackGetStatus) Descriptor() ([]byte, []int) { 3447 return file_testing_proto_rawDescGZIP(), []int{46} 3448 } 3449 3450 type StackSetDirty struct { 3451 state protoimpl.MessageState 3452 sizeCache protoimpl.SizeCache 3453 unknownFields protoimpl.UnknownFields 3454 3455 Dirty bool `protobuf:"varint,1,opt,name=dirty,proto3" json:"dirty,omitempty"` 3456 } 3457 3458 func (x *StackSetDirty) Reset() { 3459 *x = StackSetDirty{} 3460 if protoimpl.UnsafeEnabled { 3461 mi := &file_testing_proto_msgTypes[47] 3462 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3463 ms.StoreMessageInfo(mi) 3464 } 3465 } 3466 3467 func (x *StackSetDirty) String() string { 3468 return protoimpl.X.MessageStringOf(x) 3469 } 3470 3471 func (*StackSetDirty) ProtoMessage() {} 3472 3473 func (x *StackSetDirty) ProtoReflect() protoreflect.Message { 3474 mi := &file_testing_proto_msgTypes[47] 3475 if protoimpl.UnsafeEnabled && x != nil { 3476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3477 if ms.LoadMessageInfo() == nil { 3478 ms.StoreMessageInfo(mi) 3479 } 3480 return ms 3481 } 3482 return mi.MessageOf(x) 3483 } 3484 3485 // Deprecated: Use StackSetDirty.ProtoReflect.Descriptor instead. 3486 func (*StackSetDirty) Descriptor() ([]byte, []int) { 3487 return file_testing_proto_rawDescGZIP(), []int{47} 3488 } 3489 3490 func (x *StackSetDirty) GetDirty() bool { 3491 if x != nil { 3492 return x.Dirty 3493 } 3494 return false 3495 } 3496 3497 type StackGetErrors struct { 3498 state protoimpl.MessageState 3499 sizeCache protoimpl.SizeCache 3500 unknownFields protoimpl.UnknownFields 3501 } 3502 3503 func (x *StackGetErrors) Reset() { 3504 *x = StackGetErrors{} 3505 if protoimpl.UnsafeEnabled { 3506 mi := &file_testing_proto_msgTypes[48] 3507 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3508 ms.StoreMessageInfo(mi) 3509 } 3510 } 3511 3512 func (x *StackGetErrors) String() string { 3513 return protoimpl.X.MessageStringOf(x) 3514 } 3515 3516 func (*StackGetErrors) ProtoMessage() {} 3517 3518 func (x *StackGetErrors) ProtoReflect() protoreflect.Message { 3519 mi := &file_testing_proto_msgTypes[48] 3520 if protoimpl.UnsafeEnabled && x != nil { 3521 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3522 if ms.LoadMessageInfo() == nil { 3523 ms.StoreMessageInfo(mi) 3524 } 3525 return ms 3526 } 3527 return mi.MessageOf(x) 3528 } 3529 3530 // Deprecated: Use StackGetErrors.ProtoReflect.Descriptor instead. 3531 func (*StackGetErrors) Descriptor() ([]byte, []int) { 3532 return file_testing_proto_rawDescGZIP(), []int{48} 3533 } 3534 3535 type StackValue struct { 3536 state protoimpl.MessageState 3537 sizeCache protoimpl.SizeCache 3538 unknownFields protoimpl.UnknownFields 3539 } 3540 3541 func (x *StackValue) Reset() { 3542 *x = StackValue{} 3543 if protoimpl.UnsafeEnabled { 3544 mi := &file_testing_proto_msgTypes[49] 3545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3546 ms.StoreMessageInfo(mi) 3547 } 3548 } 3549 3550 func (x *StackValue) String() string { 3551 return protoimpl.X.MessageStringOf(x) 3552 } 3553 3554 func (*StackValue) ProtoMessage() {} 3555 3556 func (x *StackValue) ProtoReflect() protoreflect.Message { 3557 mi := &file_testing_proto_msgTypes[49] 3558 if protoimpl.UnsafeEnabled && x != nil { 3559 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3560 if ms.LoadMessageInfo() == nil { 3561 ms.StoreMessageInfo(mi) 3562 } 3563 return ms 3564 } 3565 return mi.MessageOf(x) 3566 } 3567 3568 // Deprecated: Use StackValue.ProtoReflect.Descriptor instead. 3569 func (*StackValue) Descriptor() ([]byte, []int) { 3570 return file_testing_proto_rawDescGZIP(), []int{49} 3571 } 3572 3573 type StackOperationResponse struct { 3574 state protoimpl.MessageState 3575 sizeCache protoimpl.SizeCache 3576 unknownFields protoimpl.UnknownFields 3577 3578 // FatalError is an framework internal error happened during operation. 3579 FatalError string `protobuf:"bytes,1,opt,name=fatal_error,json=fatalError,proto3" json:"fatal_error,omitempty"` 3580 // Status is a response for StackGetStatus request. 3581 // It's also populated in Reset's response. 3582 Status StackStatus `protobuf:"varint,2,opt,name=status,proto3,enum=tast.core.StackStatus" json:"status,omitempty"` 3583 // Errors is a response for StackGetErrors request. 3584 Errors []*Error `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` 3585 // TestHasError is a response for StackPreTest and StackPostTest request. 3586 TestHasError bool `protobuf:"varint,4,opt,name=test_has_error,json=testHasError,proto3" json:"test_has_error,omitempty"` 3587 // FixtValue is the serialized fixture value of the fixture in current stack. 3588 FixtValue []byte `protobuf:"bytes,5,opt,name=fixt_value,json=fixtValue,proto3" json:"fixt_value,omitempty"` 3589 } 3590 3591 func (x *StackOperationResponse) Reset() { 3592 *x = StackOperationResponse{} 3593 if protoimpl.UnsafeEnabled { 3594 mi := &file_testing_proto_msgTypes[50] 3595 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3596 ms.StoreMessageInfo(mi) 3597 } 3598 } 3599 3600 func (x *StackOperationResponse) String() string { 3601 return protoimpl.X.MessageStringOf(x) 3602 } 3603 3604 func (*StackOperationResponse) ProtoMessage() {} 3605 3606 func (x *StackOperationResponse) ProtoReflect() protoreflect.Message { 3607 mi := &file_testing_proto_msgTypes[50] 3608 if protoimpl.UnsafeEnabled && x != nil { 3609 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3610 if ms.LoadMessageInfo() == nil { 3611 ms.StoreMessageInfo(mi) 3612 } 3613 return ms 3614 } 3615 return mi.MessageOf(x) 3616 } 3617 3618 // Deprecated: Use StackOperationResponse.ProtoReflect.Descriptor instead. 3619 func (*StackOperationResponse) Descriptor() ([]byte, []int) { 3620 return file_testing_proto_rawDescGZIP(), []int{50} 3621 } 3622 3623 func (x *StackOperationResponse) GetFatalError() string { 3624 if x != nil { 3625 return x.FatalError 3626 } 3627 return "" 3628 } 3629 3630 func (x *StackOperationResponse) GetStatus() StackStatus { 3631 if x != nil { 3632 return x.Status 3633 } 3634 return StackStatus_GREEN 3635 } 3636 3637 func (x *StackOperationResponse) GetErrors() []*Error { 3638 if x != nil { 3639 return x.Errors 3640 } 3641 return nil 3642 } 3643 3644 func (x *StackOperationResponse) GetTestHasError() bool { 3645 if x != nil { 3646 return x.TestHasError 3647 } 3648 return false 3649 } 3650 3651 func (x *StackOperationResponse) GetFixtValue() []byte { 3652 if x != nil { 3653 return x.FixtValue 3654 } 3655 return nil 3656 } 3657 3658 type HeartbeatEvent struct { 3659 state protoimpl.MessageState 3660 sizeCache protoimpl.SizeCache 3661 unknownFields protoimpl.UnknownFields 3662 3663 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 3664 } 3665 3666 func (x *HeartbeatEvent) Reset() { 3667 *x = HeartbeatEvent{} 3668 if protoimpl.UnsafeEnabled { 3669 mi := &file_testing_proto_msgTypes[51] 3670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3671 ms.StoreMessageInfo(mi) 3672 } 3673 } 3674 3675 func (x *HeartbeatEvent) String() string { 3676 return protoimpl.X.MessageStringOf(x) 3677 } 3678 3679 func (*HeartbeatEvent) ProtoMessage() {} 3680 3681 func (x *HeartbeatEvent) ProtoReflect() protoreflect.Message { 3682 mi := &file_testing_proto_msgTypes[51] 3683 if protoimpl.UnsafeEnabled && x != nil { 3684 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3685 if ms.LoadMessageInfo() == nil { 3686 ms.StoreMessageInfo(mi) 3687 } 3688 return ms 3689 } 3690 return mi.MessageOf(x) 3691 } 3692 3693 // Deprecated: Use HeartbeatEvent.ProtoReflect.Descriptor instead. 3694 func (*HeartbeatEvent) Descriptor() ([]byte, []int) { 3695 return file_testing_proto_rawDescGZIP(), []int{51} 3696 } 3697 3698 func (x *HeartbeatEvent) GetTime() *timestamppb.Timestamp { 3699 if x != nil { 3700 return x.Time 3701 } 3702 return nil 3703 } 3704 3705 // A string key-value pair. 3706 type StringPair struct { 3707 state protoimpl.MessageState 3708 sizeCache protoimpl.SizeCache 3709 unknownFields protoimpl.UnknownFields 3710 3711 // Regex: ^[a-z][a-z0-9_]*(/[a-z][a-z0-9_]*)*$ 3712 // Max length: 64. 3713 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 3714 // Max length: 256. 3715 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 3716 } 3717 3718 func (x *StringPair) Reset() { 3719 *x = StringPair{} 3720 if protoimpl.UnsafeEnabled { 3721 mi := &file_testing_proto_msgTypes[52] 3722 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3723 ms.StoreMessageInfo(mi) 3724 } 3725 } 3726 3727 func (x *StringPair) String() string { 3728 return protoimpl.X.MessageStringOf(x) 3729 } 3730 3731 func (*StringPair) ProtoMessage() {} 3732 3733 func (x *StringPair) ProtoReflect() protoreflect.Message { 3734 mi := &file_testing_proto_msgTypes[52] 3735 if protoimpl.UnsafeEnabled && x != nil { 3736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3737 if ms.LoadMessageInfo() == nil { 3738 ms.StoreMessageInfo(mi) 3739 } 3740 return ms 3741 } 3742 return mi.MessageOf(x) 3743 } 3744 3745 // Deprecated: Use StringPair.ProtoReflect.Descriptor instead. 3746 func (*StringPair) Descriptor() ([]byte, []int) { 3747 return file_testing_proto_rawDescGZIP(), []int{52} 3748 } 3749 3750 func (x *StringPair) GetKey() string { 3751 if x != nil { 3752 return x.Key 3753 } 3754 return "" 3755 } 3756 3757 func (x *StringPair) GetValue() string { 3758 if x != nil { 3759 return x.Value 3760 } 3761 return "" 3762 } 3763 3764 var File_testing_proto protoreflect.FileDescriptor 3765 3766 var file_testing_proto_rawDesc = []byte{ 3767 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 3768 0x09, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 3769 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 3770 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 3771 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 3772 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x67, 0x6f, 0x2e, 3773 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x74, 0x61, 0x73, 3774 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 3775 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x64, 0x75, 0x74, 0x66, 0x65, 0x61, 3776 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x66, 0x65, 0x61, 3777 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a, 0x13, 0x4c, 3778 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 3779 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 3780 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 3781 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 3782 0x72, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 3783 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 3784 0x65, 0x22, 0x4d, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 3785 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x74, 3786 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 3787 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 3788 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 3789 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 3790 0x65, 0x56, 0x61, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x26, 0x0a, 0x10, 3791 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 3792 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 3793 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x19, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x75, 3794 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3795 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x76, 0x61, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 3796 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 3797 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x52, 0x04, 0x76, 0x61, 3798 0x72, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 3799 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x65, 3800 0x73, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 3801 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x65, 3802 0x73, 0x74, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x54, 0x65, 3803 0x73, 0x74, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x5d, 0x0a, 0x18, 0x73, 0x74, 0x61, 0x63, 0x6b, 3804 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 3805 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x61, 0x73, 0x74, 3806 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 3807 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 3808 0x73, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 3809 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04, 3810 0x08, 0x02, 0x10, 0x03, 0x22, 0x9a, 0x04, 0x0a, 0x10, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 3811 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x75, 0x6e, 3812 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x61, 0x73, 3813 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 3814 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x40, 0x0a, 0x0c, 3815 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 3816 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 3817 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 3818 0x00, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3a, 3819 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 3820 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 3821 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 3822 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x6e, 3823 0x74, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 3824 0x32, 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 3825 0x69, 0x74, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 3826 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x0a, 3827 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 3828 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 3829 0x69, 0x74, 0x79, 0x45, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x65, 3830 0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x64, 0x12, 0x47, 0x0a, 0x0f, 0x65, 0x6e, 0x74, 0x69, 3831 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 3832 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 3833 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x45, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 3834 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x45, 0x6e, 3835 0x64, 0x12, 0x4b, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 3836 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x61, 0x73, 3837 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 3838 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 3839 0x73, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 3840 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 3841 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 3842 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 3843 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 3844 0x65, 0x22, 0x57, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 3845 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 3846 0x75, 0x73, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 3847 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, 3848 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 3849 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x12, 0x47, 0x65, 3850 0x74, 0x44, 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3851 0x12, 0x2d, 0x0a, 0x08, 0x64, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 3852 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 3853 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 3854 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 3855 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x17, 0x47, 0x65, 0x74, 3856 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 3857 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 3858 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 3859 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 3860 0x61, 0x74, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x79, 3861 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 3862 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 3863 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 3864 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x69, 0x6e, 3865 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x4e, 0x0a, 0x16, 0x43, 0x6f, 3866 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 3867 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 3868 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x44, 0x69, 0x72, 0x12, 0x1b, 0x0a, 3869 0x09, 0x63, 0x72, 0x61, 0x73, 0x68, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3870 0x52, 0x08, 0x63, 0x72, 0x61, 0x73, 0x68, 0x44, 0x69, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x1d, 0x44, 3871 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x75, 3872 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0e, 3873 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 3874 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 3875 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 3876 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 3877 0x12, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 3878 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 3879 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x20, 0x0a, 0x1e, 0x44, 3880 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x75, 3881 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, 3882 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 3883 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3884 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 3885 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x40, 3886 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 3887 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 3888 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 3889 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 3890 0x22, 0xc1, 0x04, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x04, 0x74, 3891 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x61, 0x73, 0x74, 3892 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 3893 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 3894 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 3895 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 3896 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 3897 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 3898 0x75, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3899 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 3900 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x74, 0x75, 0x72, 3901 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 3902 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 3903 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 3904 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 3905 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 3906 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, 3907 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 3908 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 3909 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x65, 3910 0x67, 0x61, 0x63, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 3911 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 3912 0x74, 0x79, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6c, 0x65, 3913 0x67, 0x61, 0x63, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 3914 0x63, 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 3915 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 3916 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x6c, 0x61, 3917 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x64, 0x5f, 0x64, 3918 0x65, 0x70, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x42, 3919 0x65, 0x64, 0x44, 0x65, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 3920 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 3921 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 3922 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 3923 0x09, 0x52, 0x0c, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 3924 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 3925 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x53, 0x74, 3926 0x61, 0x74, 0x75, 0x73, 0x22, 0x28, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 3927 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 3928 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x4f, 3929 0x0a, 0x12, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 3930 0x63, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 3931 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 3932 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 3933 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 3934 0xc7, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 3935 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 3936 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3937 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3938 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x72, 3939 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 3940 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x72, 0x69, 0x61, 3941 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 3942 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0d, 3943 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x73, 0x18, 0x04, 0x20, 3944 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x70, 3945 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 3946 0x09, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x52, 0x75, 3947 0x6e, 0x54, 0x65, 0x73, 0x74, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x72, 0x75, 3948 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 3949 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 3950 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 3951 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 3952 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1d, 0x0a, 3953 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 3954 0x0d, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xb5, 0x06, 0x0a, 3955 0x09, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x65, 3956 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x65, 0x73, 0x74, 0x73, 3957 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 3958 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x69, 3959 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x04, 0x64, 0x69, 0x72, 0x73, 0x12, 3960 0x2f, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 3961 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x46, 0x65, 3962 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 3963 0x12, 0x3f, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 3964 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 3965 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 3966 0x69, 0x67, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 3967 0x67, 0x12, 0x43, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 3968 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 3969 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 3970 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 3971 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4c, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 3972 0x66, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 3973 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 3974 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 3975 0x65, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x53, 3976 0x74, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 3977 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 3978 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 3979 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x68, 0x65, 0x61, 3980 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x28, 3981 0x0a, 0x10, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 3982 0x64, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x55, 0x6e, 3983 0x74, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 3984 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 3985 0x62, 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x51, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, 3986 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 3987 0x75, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3988 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 3989 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 3990 0x63, 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x74, 0x61, 3991 0x72, 0x67, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x61, 0x73, 3992 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 3993 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3a, 3994 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, 3995 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3996 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 3997 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x14, 0x6d, 0x61, 3998 0x78, 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 3999 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x53, 0x79, 0x73, 4000 0x4d, 0x73, 0x67, 0x4c, 0x6f, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x52, 0x0a, 0x18, 0x77, 0x61, 4001 0x69, 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x74, 4002 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 4003 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 4004 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x77, 0x61, 0x69, 0x74, 0x55, 0x6e, 0x74, 4005 0x69, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x04, 4006 0x08, 0x06, 0x10, 0x07, 0x22, 0xb6, 0x04, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x72, 0x67, 4007 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x73, 4008 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 4009 0x76, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x73, 4010 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 4011 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 4012 0x73, 0x52, 0x04, 0x64, 0x69, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 4013 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x62, 4014 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x65, 4015 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 4016 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 4017 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 4018 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 4019 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x72, 0x6f, 4020 0x78, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 4021 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 4022 0x69, 0x74, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x3a, 0x0a, 0x0b, 4023 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 4024 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4025 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x73, 4026 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x51, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 4027 0x65, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 4028 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4029 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 4030 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 4031 0x69, 0x63, 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x52, 0x0a, 0x18, 0x77, 4032 0x61, 0x69, 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 4033 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 4034 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 4035 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x77, 0x61, 0x69, 0x74, 0x55, 0x6e, 4036 0x74, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 4037 0x26, 0x0a, 0x0e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 4038 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 4039 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 4040 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 4041 0x42, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x22, 0x5f, 0x0a, 4042 0x0e, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 4043 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 4044 0x09, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x44, 0x69, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 4045 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 4046 0x44, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x64, 0x69, 0x72, 0x18, 4047 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x22, 0x9f, 4048 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 4049 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 4050 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 4051 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6c, 0x77, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 4052 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6c, 0x77, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 4053 0x22, 0x0a, 0x0d, 0x74, 0x6c, 0x77, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 4054 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6c, 0x77, 0x53, 0x65, 0x6c, 0x66, 0x4e, 4055 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x6c, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 4056 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 4057 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x6c, 0x77, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 4058 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x75, 4059 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 4060 0x64, 0x75, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x75, 0x73, 0x65, 4061 0x5f, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x76, 0x73, 0x65, 4062 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x75, 0x73, 0x65, 4063 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x44, 0x65, 0x76, 0x73, 0x65, 0x72, 0x76, 4064 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 4065 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x74, 0x44, 0x69, 0x72, 0x12, 0x32, 4066 0x0a, 0x15, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 4067 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x65, 4068 0x78, 0x74, 0x72, 0x61, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 4069 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 4070 0x73, 0x6b, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x77, 0x61, 0x72, 4071 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x75, 4072 0x69, 0x6c, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 4073 0x09, 0x52, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 4074 0x22, 0x7e, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 4075 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 4076 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x74, 4077 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 4078 0x64, 0x65, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 4079 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 4080 0x63, 0x74, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 4081 0x75, 0x69, 0x6c, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x55, 0x72, 0x6c, 4082 0x22, 0x51, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 4083 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 4084 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x65, 0x72, 0x72, 4085 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x61, 0x73, 0x74, 4086 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 4087 0x6f, 0x72, 0x73, 0x22, 0x55, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 4088 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 4089 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4090 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 4091 0x72, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4092 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x0d, 0x45, 0x72, 4093 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 4094 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 4095 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 4096 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 4097 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0xa2, 0x01, 0x0a, 0x0e, 0x52, 0x65, 4098 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x06, 4099 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 4100 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 4101 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 4102 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 4103 0x65, 0x2e, 0x53, 0x6b, 0x69, 0x70, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 4104 0x68, 0x6f, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x70, 0x73, 4105 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x74, 0x75, 0x72, 4106 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 4107 0x61, 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x37, 4108 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x72, 4109 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x61, 0x73, 0x74, 4110 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x67, 4111 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x69, 4112 0x6e, 0x67, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 4113 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 4114 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 4115 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 4116 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 4117 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 4118 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4119 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 4120 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 4121 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 4122 0x16, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x69, 4123 0x6e, 0x67, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 4124 0x6e, 0x22, 0x51, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 4125 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 4126 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 4127 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 4128 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 4129 0x74, 0x65, 0x78, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 4130 0x74, 0x61, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 4131 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4132 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 4133 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x6e, 0x74, 4134 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, 0x73, 0x74, 4135 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 4136 0x74, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 4137 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x22, 0x75, 0x0a, 4138 0x0e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 4139 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 4140 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 4141 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 4142 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 4143 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 4144 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 4145 0x74, 0x65, 0x78, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 4146 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 4147 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4148 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 4149 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 4150 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 4151 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x65, 0x72, 4152 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x61, 0x73, 0x74, 4153 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 4154 0x6f, 0x72, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x64, 4155 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 4156 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 4157 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 4158 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 4159 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 4160 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 4161 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 4162 0x2e, 0x53, 0x6b, 0x69, 0x70, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x74, 4163 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 4164 0x14, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x69, 4165 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 4166 0x22, 0x35, 0x0a, 0x12, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x45, 0x6e, 4167 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 4168 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 4169 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x12, 4170 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 4171 0x52, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x07, 0x44, 0x55, 4172 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4173 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 4174 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x55, 0x54, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 4175 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x73, 0x5f, 4176 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 4177 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x65, 0x66, 0x61, 4178 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 4179 0x63, 0x74, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 4180 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 4181 0x61, 0x63, 0x74, 0x73, 0x55, 0x72, 0x6c, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xfc, 0x01, 4182 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x52, 4183 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 4184 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 4185 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 4186 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x45, 0x6e, 4187 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 4188 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 4189 0x67, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 4190 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 4191 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 4192 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x61, 0x73, 4193 0x68, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x6f, 4194 0x67, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 4195 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 4196 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 4197 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 4198 0x15, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 4199 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 4200 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 4201 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 4202 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x73, 4203 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 4204 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x50, 0x72, 0x65, 0x54, 0x65, 0x73, 0x74, 4205 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x65, 0x54, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x70, 4206 0x6f, 0x73, 0x74, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 4207 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 4208 0x50, 0x6f, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 4209 0x54, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 4210 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 4211 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 4212 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x65, 0x74, 4213 0x5f, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 4214 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x65, 4215 0x74, 0x44, 0x69, 0x72, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x74, 0x44, 0x69, 0x72, 4216 0x74, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 4217 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 4218 0x74, 0x61, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 4219 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 4220 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 4221 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 4222 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x0c, 4223 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x22, 0x56, 0x0a, 0x0c, 4224 0x53, 0x74, 0x61, 0x63, 0x6b, 0x50, 0x72, 0x65, 0x54, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 4225 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 4226 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 4227 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x65, 4228 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x45, 4229 0x72, 0x72, 0x6f, 0x72, 0x22, 0x57, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x73, 4230 0x74, 0x54, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 4231 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 4232 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 4233 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 4234 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x10, 0x0a, 4235 0x0e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 4236 0x25, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x74, 0x79, 4237 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 4238 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x47, 4239 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x0c, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 4240 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x63, 0x6b, 4241 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 4242 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 4243 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x74, 0x61, 0x6c, 0x45, 0x72, 0x72, 4244 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 4245 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 4246 0x74, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 4247 0x75, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 4248 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 4249 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0e, 4250 0x74, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 4251 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x48, 0x61, 0x73, 0x45, 0x72, 0x72, 4252 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 4253 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 4254 0x65, 0x22, 0x40, 0x0a, 0x0e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x45, 0x76, 4255 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 4256 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4257 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 4258 0x69, 0x6d, 0x65, 0x22, 0x34, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 4259 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 4260 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 4261 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x23, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 4262 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x53, 0x54, 0x10, 4263 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x49, 0x58, 0x54, 0x55, 0x52, 0x45, 0x10, 0x01, 0x2a, 0x23, 4264 0x0a, 0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 4265 0x0a, 0x05, 0x42, 0x41, 0x54, 0x43, 0x48, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x41, 0x5a, 4266 0x59, 0x10, 0x01, 0x2a, 0x2d, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 4267 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 4268 0x03, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 4269 0x10, 0x02, 0x32, 0xcf, 0x05, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 4270 0x63, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 4271 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 4272 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 4273 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 4274 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 4275 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x11, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 4276 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x73, 0x12, 0x23, 0x2e, 0x74, 0x61, 0x73, 4277 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x75, 0x6e, 4278 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 4279 0x24, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 4280 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x73, 0x52, 0x65, 0x73, 4281 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x08, 0x52, 0x75, 0x6e, 0x54, 0x65, 4282 0x73, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 4283 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 4284 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x54, 4285 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 4286 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x44, 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 4287 0x12, 0x1c, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 4288 0x44, 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 4289 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x55, 4290 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 4291 0x5a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 4292 0x74, 0x65, 0x12, 0x21, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 4293 0x65, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 4294 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 4295 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 4296 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x43, 4297 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x2e, 4298 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 4299 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 4300 0x21, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 4301 0x65, 0x63, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 4302 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x16, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 4303 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x28, 4304 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 4305 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 4306 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 4307 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 4308 0x76, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 4309 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 4310 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 4311 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4312 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 4313 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 4314 0x22, 0x00, 0x30, 0x01, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 4315 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x74, 0x61, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x72, 4316 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4317 0x63, 0x6f, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 4318 } 4319 4320 var ( 4321 file_testing_proto_rawDescOnce sync.Once 4322 file_testing_proto_rawDescData = file_testing_proto_rawDesc 4323 ) 4324 4325 func file_testing_proto_rawDescGZIP() []byte { 4326 file_testing_proto_rawDescOnce.Do(func() { 4327 file_testing_proto_rawDescData = protoimpl.X.CompressGZIP(file_testing_proto_rawDescData) 4328 }) 4329 return file_testing_proto_rawDescData 4330 } 4331 4332 var file_testing_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 4333 var file_testing_proto_msgTypes = make([]protoimpl.MessageInfo, 54) 4334 var file_testing_proto_goTypes = []interface{}{ 4335 (EntityType)(0), // 0: tast.core.EntityType 4336 (DownloadMode)(0), // 1: tast.core.DownloadMode 4337 (StackStatus)(0), // 2: tast.core.StackStatus 4338 (*ListEntitiesRequest)(nil), // 3: tast.core.ListEntitiesRequest 4339 (*ListEntitiesResponse)(nil), // 4: tast.core.ListEntitiesResponse 4340 (*GlobalRuntimeVarsRequest)(nil), // 5: tast.core.GlobalRuntimeVarsRequest 4341 (*GlobalRuntimeVar)(nil), // 6: tast.core.GlobalRuntimeVar 4342 (*GlobalRuntimeVarsResponse)(nil), // 7: tast.core.GlobalRuntimeVarsResponse 4343 (*RunTestsRequest)(nil), // 8: tast.core.RunTestsRequest 4344 (*RunTestsResponse)(nil), // 9: tast.core.RunTestsResponse 4345 (*GetDUTInfoRequest)(nil), // 10: tast.core.GetDUTInfoRequest 4346 (*GetDUTInfoResponse)(nil), // 11: tast.core.GetDUTInfoResponse 4347 (*GetSysInfoStateRequest)(nil), // 12: tast.core.GetSysInfoStateRequest 4348 (*GetSysInfoStateResponse)(nil), // 13: tast.core.GetSysInfoStateResponse 4349 (*CollectSysInfoRequest)(nil), // 14: tast.core.CollectSysInfoRequest 4350 (*CollectSysInfoResponse)(nil), // 15: tast.core.CollectSysInfoResponse 4351 (*DownloadPrivateBundlesRequest)(nil), // 16: tast.core.DownloadPrivateBundlesRequest 4352 (*DownloadPrivateBundlesResponse)(nil), // 17: tast.core.DownloadPrivateBundlesResponse 4353 (*StreamFileRequest)(nil), // 18: tast.core.StreamFileRequest 4354 (*StreamFileResponse)(nil), // 19: tast.core.StreamFileResponse 4355 (*Entity)(nil), // 20: tast.core.Entity 4356 (*EntityContacts)(nil), // 21: tast.core.EntityContacts 4357 (*EntityDependencies)(nil), // 22: tast.core.EntityDependencies 4358 (*EntityLegacyData)(nil), // 23: tast.core.EntityLegacyData 4359 (*RunTestsInit)(nil), // 24: tast.core.RunTestsInit 4360 (*RunConfig)(nil), // 25: tast.core.RunConfig 4361 (*RunTargetConfig)(nil), // 26: tast.core.RunTargetConfig 4362 (*RunDirectories)(nil), // 27: tast.core.RunDirectories 4363 (*ServiceConfig)(nil), // 28: tast.core.ServiceConfig 4364 (*DataFileConfig)(nil), // 29: tast.core.DataFileConfig 4365 (*StartFixtureState)(nil), // 30: tast.core.StartFixtureState 4366 (*Error)(nil), // 31: tast.core.Error 4367 (*ErrorLocation)(nil), // 32: tast.core.ErrorLocation 4368 (*ResolvedEntity)(nil), // 33: tast.core.ResolvedEntity 4369 (*TimingLog)(nil), // 34: tast.core.TimingLog 4370 (*TimingStage)(nil), // 35: tast.core.TimingStage 4371 (*RunLogEvent)(nil), // 36: tast.core.RunLogEvent 4372 (*EntityStartEvent)(nil), // 37: tast.core.EntityStartEvent 4373 (*EntityLogEvent)(nil), // 38: tast.core.EntityLogEvent 4374 (*EntityErrorEvent)(nil), // 39: tast.core.EntityErrorEvent 4375 (*EntityEndEvent)(nil), // 40: tast.core.EntityEndEvent 4376 (*EntityCopyEndEvent)(nil), // 41: tast.core.EntityCopyEndEvent 4377 (*Skip)(nil), // 42: tast.core.Skip 4378 (*DUTInfo)(nil), // 43: tast.core.DUTInfo 4379 (*SysInfoState)(nil), // 44: tast.core.SysInfoState 4380 (*StackOperationRequest)(nil), // 45: tast.core.StackOperationRequest 4381 (*StackReset)(nil), // 46: tast.core.StackReset 4382 (*StackPreTest)(nil), // 47: tast.core.StackPreTest 4383 (*StackPostTest)(nil), // 48: tast.core.StackPostTest 4384 (*StackGetStatus)(nil), // 49: tast.core.StackGetStatus 4385 (*StackSetDirty)(nil), // 50: tast.core.StackSetDirty 4386 (*StackGetErrors)(nil), // 51: tast.core.StackGetErrors 4387 (*StackValue)(nil), // 52: tast.core.StackValue 4388 (*StackOperationResponse)(nil), // 53: tast.core.StackOperationResponse 4389 (*HeartbeatEvent)(nil), // 54: tast.core.HeartbeatEvent 4390 (*StringPair)(nil), // 55: tast.core.StringPair 4391 nil, // 56: tast.core.SysInfoState.LogInodeSizesEntry 4392 (*Features)(nil), // 57: tast.core.Features 4393 (*durationpb.Duration)(nil), // 58: google.protobuf.Duration 4394 (*timestamppb.Timestamp)(nil), // 59: google.protobuf.Timestamp 4395 (*protocol.DUTFeatures)(nil), // 60: tast.core.DUTFeatures 4396 } 4397 var file_testing_proto_depIdxs = []int32{ 4398 57, // 0: tast.core.ListEntitiesRequest.features:type_name -> tast.core.Features 4399 33, // 1: tast.core.ListEntitiesResponse.entities:type_name -> tast.core.ResolvedEntity 4400 6, // 2: tast.core.GlobalRuntimeVarsResponse.vars:type_name -> tast.core.GlobalRuntimeVar 4401 24, // 3: tast.core.RunTestsRequest.run_tests_init:type_name -> tast.core.RunTestsInit 4402 53, // 4: tast.core.RunTestsRequest.stack_operation_response:type_name -> tast.core.StackOperationResponse 4403 36, // 5: tast.core.RunTestsResponse.run_log:type_name -> tast.core.RunLogEvent 4404 37, // 6: tast.core.RunTestsResponse.entity_start:type_name -> tast.core.EntityStartEvent 4405 38, // 7: tast.core.RunTestsResponse.entity_log:type_name -> tast.core.EntityLogEvent 4406 39, // 8: tast.core.RunTestsResponse.entity_error:type_name -> tast.core.EntityErrorEvent 4407 40, // 9: tast.core.RunTestsResponse.entity_end:type_name -> tast.core.EntityEndEvent 4408 41, // 10: tast.core.RunTestsResponse.entity_copy_end:type_name -> tast.core.EntityCopyEndEvent 4409 45, // 11: tast.core.RunTestsResponse.stack_operation:type_name -> tast.core.StackOperationRequest 4410 54, // 12: tast.core.RunTestsResponse.heartbeat:type_name -> tast.core.HeartbeatEvent 4411 43, // 13: tast.core.GetDUTInfoResponse.dut_info:type_name -> tast.core.DUTInfo 4412 44, // 14: tast.core.GetSysInfoStateResponse.state:type_name -> tast.core.SysInfoState 4413 44, // 15: tast.core.CollectSysInfoRequest.initial_state:type_name -> tast.core.SysInfoState 4414 28, // 16: tast.core.DownloadPrivateBundlesRequest.service_config:type_name -> tast.core.ServiceConfig 4415 0, // 17: tast.core.Entity.type:type_name -> tast.core.EntityType 4416 22, // 18: tast.core.Entity.dependencies:type_name -> tast.core.EntityDependencies 4417 21, // 19: tast.core.Entity.contacts:type_name -> tast.core.EntityContacts 4418 23, // 20: tast.core.Entity.legacy_data:type_name -> tast.core.EntityLegacyData 4419 55, // 21: tast.core.Entity.search_flags:type_name -> tast.core.StringPair 4420 58, // 22: tast.core.EntityLegacyData.timeout:type_name -> google.protobuf.Duration 4421 25, // 23: tast.core.RunTestsInit.run_config:type_name -> tast.core.RunConfig 4422 27, // 24: tast.core.RunConfig.dirs:type_name -> tast.core.RunDirectories 4423 57, // 25: tast.core.RunConfig.features:type_name -> tast.core.Features 4424 28, // 26: tast.core.RunConfig.service_config:type_name -> tast.core.ServiceConfig 4425 29, // 27: tast.core.RunConfig.data_file_config:type_name -> tast.core.DataFileConfig 4426 30, // 28: tast.core.RunConfig.start_fixture_state:type_name -> tast.core.StartFixtureState 4427 58, // 29: tast.core.RunConfig.heartbeat_interval:type_name -> google.protobuf.Duration 4428 58, // 30: tast.core.RunConfig.system_services_timeout:type_name -> google.protobuf.Duration 4429 26, // 31: tast.core.RunConfig.target:type_name -> tast.core.RunTargetConfig 4430 58, // 32: tast.core.RunConfig.msg_timeout:type_name -> google.protobuf.Duration 4431 58, // 33: tast.core.RunConfig.wait_until_ready_timeout:type_name -> google.protobuf.Duration 4432 27, // 34: tast.core.RunTargetConfig.dirs:type_name -> tast.core.RunDirectories 4433 58, // 35: tast.core.RunTargetConfig.msg_timeout:type_name -> google.protobuf.Duration 4434 58, // 36: tast.core.RunTargetConfig.system_services_timeout:type_name -> google.protobuf.Duration 4435 58, // 37: tast.core.RunTargetConfig.wait_until_ready_timeout:type_name -> google.protobuf.Duration 4436 1, // 38: tast.core.DataFileConfig.download_mode:type_name -> tast.core.DownloadMode 4437 31, // 39: tast.core.StartFixtureState.errors:type_name -> tast.core.Error 4438 32, // 40: tast.core.Error.location:type_name -> tast.core.ErrorLocation 4439 20, // 41: tast.core.ResolvedEntity.entity:type_name -> tast.core.Entity 4440 42, // 42: tast.core.ResolvedEntity.skip:type_name -> tast.core.Skip 4441 35, // 43: tast.core.TimingLog.root:type_name -> tast.core.TimingStage 4442 59, // 44: tast.core.TimingStage.start_time:type_name -> google.protobuf.Timestamp 4443 59, // 45: tast.core.TimingStage.end_time:type_name -> google.protobuf.Timestamp 4444 35, // 46: tast.core.TimingStage.children:type_name -> tast.core.TimingStage 4445 59, // 47: tast.core.RunLogEvent.time:type_name -> google.protobuf.Timestamp 4446 59, // 48: tast.core.EntityStartEvent.time:type_name -> google.protobuf.Timestamp 4447 20, // 49: tast.core.EntityStartEvent.entity:type_name -> tast.core.Entity 4448 59, // 50: tast.core.EntityLogEvent.time:type_name -> google.protobuf.Timestamp 4449 59, // 51: tast.core.EntityErrorEvent.time:type_name -> google.protobuf.Timestamp 4450 31, // 52: tast.core.EntityErrorEvent.error:type_name -> tast.core.Error 4451 59, // 53: tast.core.EntityEndEvent.time:type_name -> google.protobuf.Timestamp 4452 42, // 54: tast.core.EntityEndEvent.skip:type_name -> tast.core.Skip 4453 34, // 55: tast.core.EntityEndEvent.timing_log:type_name -> tast.core.TimingLog 4454 60, // 56: tast.core.DUTInfo.features:type_name -> tast.core.DUTFeatures 4455 56, // 57: tast.core.SysInfoState.log_inode_sizes:type_name -> tast.core.SysInfoState.LogInodeSizesEntry 4456 46, // 58: tast.core.StackOperationRequest.reset:type_name -> tast.core.StackReset 4457 47, // 59: tast.core.StackOperationRequest.pre_test:type_name -> tast.core.StackPreTest 4458 48, // 60: tast.core.StackOperationRequest.post_test:type_name -> tast.core.StackPostTest 4459 49, // 61: tast.core.StackOperationRequest.status:type_name -> tast.core.StackGetStatus 4460 50, // 62: tast.core.StackOperationRequest.set_dirty:type_name -> tast.core.StackSetDirty 4461 51, // 63: tast.core.StackOperationRequest.errors:type_name -> tast.core.StackGetErrors 4462 52, // 64: tast.core.StackOperationRequest.value:type_name -> tast.core.StackValue 4463 20, // 65: tast.core.StackPreTest.entity:type_name -> tast.core.Entity 4464 20, // 66: tast.core.StackPostTest.entity:type_name -> tast.core.Entity 4465 2, // 67: tast.core.StackOperationResponse.status:type_name -> tast.core.StackStatus 4466 31, // 68: tast.core.StackOperationResponse.errors:type_name -> tast.core.Error 4467 59, // 69: tast.core.HeartbeatEvent.time:type_name -> google.protobuf.Timestamp 4468 3, // 70: tast.core.TestService.ListEntities:input_type -> tast.core.ListEntitiesRequest 4469 5, // 71: tast.core.TestService.GlobalRuntimeVars:input_type -> tast.core.GlobalRuntimeVarsRequest 4470 8, // 72: tast.core.TestService.RunTests:input_type -> tast.core.RunTestsRequest 4471 10, // 73: tast.core.TestService.GetDUTInfo:input_type -> tast.core.GetDUTInfoRequest 4472 12, // 74: tast.core.TestService.GetSysInfoState:input_type -> tast.core.GetSysInfoStateRequest 4473 14, // 75: tast.core.TestService.CollectSysInfo:input_type -> tast.core.CollectSysInfoRequest 4474 16, // 76: tast.core.TestService.DownloadPrivateBundles:input_type -> tast.core.DownloadPrivateBundlesRequest 4475 18, // 77: tast.core.TestService.StreamFile:input_type -> tast.core.StreamFileRequest 4476 4, // 78: tast.core.TestService.ListEntities:output_type -> tast.core.ListEntitiesResponse 4477 7, // 79: tast.core.TestService.GlobalRuntimeVars:output_type -> tast.core.GlobalRuntimeVarsResponse 4478 9, // 80: tast.core.TestService.RunTests:output_type -> tast.core.RunTestsResponse 4479 11, // 81: tast.core.TestService.GetDUTInfo:output_type -> tast.core.GetDUTInfoResponse 4480 13, // 82: tast.core.TestService.GetSysInfoState:output_type -> tast.core.GetSysInfoStateResponse 4481 15, // 83: tast.core.TestService.CollectSysInfo:output_type -> tast.core.CollectSysInfoResponse 4482 17, // 84: tast.core.TestService.DownloadPrivateBundles:output_type -> tast.core.DownloadPrivateBundlesResponse 4483 19, // 85: tast.core.TestService.StreamFile:output_type -> tast.core.StreamFileResponse 4484 78, // [78:86] is the sub-list for method output_type 4485 70, // [70:78] is the sub-list for method input_type 4486 70, // [70:70] is the sub-list for extension type_name 4487 70, // [70:70] is the sub-list for extension extendee 4488 0, // [0:70] is the sub-list for field type_name 4489 } 4490 4491 func init() { file_testing_proto_init() } 4492 func file_testing_proto_init() { 4493 if File_testing_proto != nil { 4494 return 4495 } 4496 file_features_proto_init() 4497 if !protoimpl.UnsafeEnabled { 4498 file_testing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4499 switch v := v.(*ListEntitiesRequest); i { 4500 case 0: 4501 return &v.state 4502 case 1: 4503 return &v.sizeCache 4504 case 2: 4505 return &v.unknownFields 4506 default: 4507 return nil 4508 } 4509 } 4510 file_testing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4511 switch v := v.(*ListEntitiesResponse); i { 4512 case 0: 4513 return &v.state 4514 case 1: 4515 return &v.sizeCache 4516 case 2: 4517 return &v.unknownFields 4518 default: 4519 return nil 4520 } 4521 } 4522 file_testing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4523 switch v := v.(*GlobalRuntimeVarsRequest); i { 4524 case 0: 4525 return &v.state 4526 case 1: 4527 return &v.sizeCache 4528 case 2: 4529 return &v.unknownFields 4530 default: 4531 return nil 4532 } 4533 } 4534 file_testing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4535 switch v := v.(*GlobalRuntimeVar); i { 4536 case 0: 4537 return &v.state 4538 case 1: 4539 return &v.sizeCache 4540 case 2: 4541 return &v.unknownFields 4542 default: 4543 return nil 4544 } 4545 } 4546 file_testing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4547 switch v := v.(*GlobalRuntimeVarsResponse); i { 4548 case 0: 4549 return &v.state 4550 case 1: 4551 return &v.sizeCache 4552 case 2: 4553 return &v.unknownFields 4554 default: 4555 return nil 4556 } 4557 } 4558 file_testing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4559 switch v := v.(*RunTestsRequest); i { 4560 case 0: 4561 return &v.state 4562 case 1: 4563 return &v.sizeCache 4564 case 2: 4565 return &v.unknownFields 4566 default: 4567 return nil 4568 } 4569 } 4570 file_testing_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4571 switch v := v.(*RunTestsResponse); i { 4572 case 0: 4573 return &v.state 4574 case 1: 4575 return &v.sizeCache 4576 case 2: 4577 return &v.unknownFields 4578 default: 4579 return nil 4580 } 4581 } 4582 file_testing_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4583 switch v := v.(*GetDUTInfoRequest); i { 4584 case 0: 4585 return &v.state 4586 case 1: 4587 return &v.sizeCache 4588 case 2: 4589 return &v.unknownFields 4590 default: 4591 return nil 4592 } 4593 } 4594 file_testing_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4595 switch v := v.(*GetDUTInfoResponse); i { 4596 case 0: 4597 return &v.state 4598 case 1: 4599 return &v.sizeCache 4600 case 2: 4601 return &v.unknownFields 4602 default: 4603 return nil 4604 } 4605 } 4606 file_testing_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4607 switch v := v.(*GetSysInfoStateRequest); i { 4608 case 0: 4609 return &v.state 4610 case 1: 4611 return &v.sizeCache 4612 case 2: 4613 return &v.unknownFields 4614 default: 4615 return nil 4616 } 4617 } 4618 file_testing_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4619 switch v := v.(*GetSysInfoStateResponse); i { 4620 case 0: 4621 return &v.state 4622 case 1: 4623 return &v.sizeCache 4624 case 2: 4625 return &v.unknownFields 4626 default: 4627 return nil 4628 } 4629 } 4630 file_testing_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4631 switch v := v.(*CollectSysInfoRequest); i { 4632 case 0: 4633 return &v.state 4634 case 1: 4635 return &v.sizeCache 4636 case 2: 4637 return &v.unknownFields 4638 default: 4639 return nil 4640 } 4641 } 4642 file_testing_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4643 switch v := v.(*CollectSysInfoResponse); i { 4644 case 0: 4645 return &v.state 4646 case 1: 4647 return &v.sizeCache 4648 case 2: 4649 return &v.unknownFields 4650 default: 4651 return nil 4652 } 4653 } 4654 file_testing_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4655 switch v := v.(*DownloadPrivateBundlesRequest); i { 4656 case 0: 4657 return &v.state 4658 case 1: 4659 return &v.sizeCache 4660 case 2: 4661 return &v.unknownFields 4662 default: 4663 return nil 4664 } 4665 } 4666 file_testing_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4667 switch v := v.(*DownloadPrivateBundlesResponse); i { 4668 case 0: 4669 return &v.state 4670 case 1: 4671 return &v.sizeCache 4672 case 2: 4673 return &v.unknownFields 4674 default: 4675 return nil 4676 } 4677 } 4678 file_testing_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4679 switch v := v.(*StreamFileRequest); i { 4680 case 0: 4681 return &v.state 4682 case 1: 4683 return &v.sizeCache 4684 case 2: 4685 return &v.unknownFields 4686 default: 4687 return nil 4688 } 4689 } 4690 file_testing_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4691 switch v := v.(*StreamFileResponse); i { 4692 case 0: 4693 return &v.state 4694 case 1: 4695 return &v.sizeCache 4696 case 2: 4697 return &v.unknownFields 4698 default: 4699 return nil 4700 } 4701 } 4702 file_testing_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4703 switch v := v.(*Entity); i { 4704 case 0: 4705 return &v.state 4706 case 1: 4707 return &v.sizeCache 4708 case 2: 4709 return &v.unknownFields 4710 default: 4711 return nil 4712 } 4713 } 4714 file_testing_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4715 switch v := v.(*EntityContacts); i { 4716 case 0: 4717 return &v.state 4718 case 1: 4719 return &v.sizeCache 4720 case 2: 4721 return &v.unknownFields 4722 default: 4723 return nil 4724 } 4725 } 4726 file_testing_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4727 switch v := v.(*EntityDependencies); i { 4728 case 0: 4729 return &v.state 4730 case 1: 4731 return &v.sizeCache 4732 case 2: 4733 return &v.unknownFields 4734 default: 4735 return nil 4736 } 4737 } 4738 file_testing_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4739 switch v := v.(*EntityLegacyData); i { 4740 case 0: 4741 return &v.state 4742 case 1: 4743 return &v.sizeCache 4744 case 2: 4745 return &v.unknownFields 4746 default: 4747 return nil 4748 } 4749 } 4750 file_testing_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4751 switch v := v.(*RunTestsInit); i { 4752 case 0: 4753 return &v.state 4754 case 1: 4755 return &v.sizeCache 4756 case 2: 4757 return &v.unknownFields 4758 default: 4759 return nil 4760 } 4761 } 4762 file_testing_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4763 switch v := v.(*RunConfig); i { 4764 case 0: 4765 return &v.state 4766 case 1: 4767 return &v.sizeCache 4768 case 2: 4769 return &v.unknownFields 4770 default: 4771 return nil 4772 } 4773 } 4774 file_testing_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4775 switch v := v.(*RunTargetConfig); i { 4776 case 0: 4777 return &v.state 4778 case 1: 4779 return &v.sizeCache 4780 case 2: 4781 return &v.unknownFields 4782 default: 4783 return nil 4784 } 4785 } 4786 file_testing_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 4787 switch v := v.(*RunDirectories); i { 4788 case 0: 4789 return &v.state 4790 case 1: 4791 return &v.sizeCache 4792 case 2: 4793 return &v.unknownFields 4794 default: 4795 return nil 4796 } 4797 } 4798 file_testing_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 4799 switch v := v.(*ServiceConfig); i { 4800 case 0: 4801 return &v.state 4802 case 1: 4803 return &v.sizeCache 4804 case 2: 4805 return &v.unknownFields 4806 default: 4807 return nil 4808 } 4809 } 4810 file_testing_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 4811 switch v := v.(*DataFileConfig); i { 4812 case 0: 4813 return &v.state 4814 case 1: 4815 return &v.sizeCache 4816 case 2: 4817 return &v.unknownFields 4818 default: 4819 return nil 4820 } 4821 } 4822 file_testing_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 4823 switch v := v.(*StartFixtureState); i { 4824 case 0: 4825 return &v.state 4826 case 1: 4827 return &v.sizeCache 4828 case 2: 4829 return &v.unknownFields 4830 default: 4831 return nil 4832 } 4833 } 4834 file_testing_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4835 switch v := v.(*Error); i { 4836 case 0: 4837 return &v.state 4838 case 1: 4839 return &v.sizeCache 4840 case 2: 4841 return &v.unknownFields 4842 default: 4843 return nil 4844 } 4845 } 4846 file_testing_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 4847 switch v := v.(*ErrorLocation); i { 4848 case 0: 4849 return &v.state 4850 case 1: 4851 return &v.sizeCache 4852 case 2: 4853 return &v.unknownFields 4854 default: 4855 return nil 4856 } 4857 } 4858 file_testing_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4859 switch v := v.(*ResolvedEntity); i { 4860 case 0: 4861 return &v.state 4862 case 1: 4863 return &v.sizeCache 4864 case 2: 4865 return &v.unknownFields 4866 default: 4867 return nil 4868 } 4869 } 4870 file_testing_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 4871 switch v := v.(*TimingLog); i { 4872 case 0: 4873 return &v.state 4874 case 1: 4875 return &v.sizeCache 4876 case 2: 4877 return &v.unknownFields 4878 default: 4879 return nil 4880 } 4881 } 4882 file_testing_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 4883 switch v := v.(*TimingStage); i { 4884 case 0: 4885 return &v.state 4886 case 1: 4887 return &v.sizeCache 4888 case 2: 4889 return &v.unknownFields 4890 default: 4891 return nil 4892 } 4893 } 4894 file_testing_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 4895 switch v := v.(*RunLogEvent); i { 4896 case 0: 4897 return &v.state 4898 case 1: 4899 return &v.sizeCache 4900 case 2: 4901 return &v.unknownFields 4902 default: 4903 return nil 4904 } 4905 } 4906 file_testing_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 4907 switch v := v.(*EntityStartEvent); i { 4908 case 0: 4909 return &v.state 4910 case 1: 4911 return &v.sizeCache 4912 case 2: 4913 return &v.unknownFields 4914 default: 4915 return nil 4916 } 4917 } 4918 file_testing_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4919 switch v := v.(*EntityLogEvent); i { 4920 case 0: 4921 return &v.state 4922 case 1: 4923 return &v.sizeCache 4924 case 2: 4925 return &v.unknownFields 4926 default: 4927 return nil 4928 } 4929 } 4930 file_testing_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 4931 switch v := v.(*EntityErrorEvent); i { 4932 case 0: 4933 return &v.state 4934 case 1: 4935 return &v.sizeCache 4936 case 2: 4937 return &v.unknownFields 4938 default: 4939 return nil 4940 } 4941 } 4942 file_testing_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 4943 switch v := v.(*EntityEndEvent); i { 4944 case 0: 4945 return &v.state 4946 case 1: 4947 return &v.sizeCache 4948 case 2: 4949 return &v.unknownFields 4950 default: 4951 return nil 4952 } 4953 } 4954 file_testing_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 4955 switch v := v.(*EntityCopyEndEvent); i { 4956 case 0: 4957 return &v.state 4958 case 1: 4959 return &v.sizeCache 4960 case 2: 4961 return &v.unknownFields 4962 default: 4963 return nil 4964 } 4965 } 4966 file_testing_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 4967 switch v := v.(*Skip); i { 4968 case 0: 4969 return &v.state 4970 case 1: 4971 return &v.sizeCache 4972 case 2: 4973 return &v.unknownFields 4974 default: 4975 return nil 4976 } 4977 } 4978 file_testing_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { 4979 switch v := v.(*DUTInfo); i { 4980 case 0: 4981 return &v.state 4982 case 1: 4983 return &v.sizeCache 4984 case 2: 4985 return &v.unknownFields 4986 default: 4987 return nil 4988 } 4989 } 4990 file_testing_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { 4991 switch v := v.(*SysInfoState); i { 4992 case 0: 4993 return &v.state 4994 case 1: 4995 return &v.sizeCache 4996 case 2: 4997 return &v.unknownFields 4998 default: 4999 return nil 5000 } 5001 } 5002 file_testing_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { 5003 switch v := v.(*StackOperationRequest); i { 5004 case 0: 5005 return &v.state 5006 case 1: 5007 return &v.sizeCache 5008 case 2: 5009 return &v.unknownFields 5010 default: 5011 return nil 5012 } 5013 } 5014 file_testing_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { 5015 switch v := v.(*StackReset); i { 5016 case 0: 5017 return &v.state 5018 case 1: 5019 return &v.sizeCache 5020 case 2: 5021 return &v.unknownFields 5022 default: 5023 return nil 5024 } 5025 } 5026 file_testing_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { 5027 switch v := v.(*StackPreTest); i { 5028 case 0: 5029 return &v.state 5030 case 1: 5031 return &v.sizeCache 5032 case 2: 5033 return &v.unknownFields 5034 default: 5035 return nil 5036 } 5037 } 5038 file_testing_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { 5039 switch v := v.(*StackPostTest); i { 5040 case 0: 5041 return &v.state 5042 case 1: 5043 return &v.sizeCache 5044 case 2: 5045 return &v.unknownFields 5046 default: 5047 return nil 5048 } 5049 } 5050 file_testing_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { 5051 switch v := v.(*StackGetStatus); i { 5052 case 0: 5053 return &v.state 5054 case 1: 5055 return &v.sizeCache 5056 case 2: 5057 return &v.unknownFields 5058 default: 5059 return nil 5060 } 5061 } 5062 file_testing_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { 5063 switch v := v.(*StackSetDirty); i { 5064 case 0: 5065 return &v.state 5066 case 1: 5067 return &v.sizeCache 5068 case 2: 5069 return &v.unknownFields 5070 default: 5071 return nil 5072 } 5073 } 5074 file_testing_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { 5075 switch v := v.(*StackGetErrors); i { 5076 case 0: 5077 return &v.state 5078 case 1: 5079 return &v.sizeCache 5080 case 2: 5081 return &v.unknownFields 5082 default: 5083 return nil 5084 } 5085 } 5086 file_testing_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { 5087 switch v := v.(*StackValue); i { 5088 case 0: 5089 return &v.state 5090 case 1: 5091 return &v.sizeCache 5092 case 2: 5093 return &v.unknownFields 5094 default: 5095 return nil 5096 } 5097 } 5098 file_testing_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { 5099 switch v := v.(*StackOperationResponse); i { 5100 case 0: 5101 return &v.state 5102 case 1: 5103 return &v.sizeCache 5104 case 2: 5105 return &v.unknownFields 5106 default: 5107 return nil 5108 } 5109 } 5110 file_testing_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { 5111 switch v := v.(*HeartbeatEvent); i { 5112 case 0: 5113 return &v.state 5114 case 1: 5115 return &v.sizeCache 5116 case 2: 5117 return &v.unknownFields 5118 default: 5119 return nil 5120 } 5121 } 5122 file_testing_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { 5123 switch v := v.(*StringPair); i { 5124 case 0: 5125 return &v.state 5126 case 1: 5127 return &v.sizeCache 5128 case 2: 5129 return &v.unknownFields 5130 default: 5131 return nil 5132 } 5133 } 5134 } 5135 file_testing_proto_msgTypes[5].OneofWrappers = []interface{}{ 5136 (*RunTestsRequest_RunTestsInit)(nil), 5137 (*RunTestsRequest_StackOperationResponse)(nil), 5138 } 5139 file_testing_proto_msgTypes[6].OneofWrappers = []interface{}{ 5140 (*RunTestsResponse_RunLog)(nil), 5141 (*RunTestsResponse_EntityStart)(nil), 5142 (*RunTestsResponse_EntityLog)(nil), 5143 (*RunTestsResponse_EntityError)(nil), 5144 (*RunTestsResponse_EntityEnd)(nil), 5145 (*RunTestsResponse_EntityCopyEnd)(nil), 5146 (*RunTestsResponse_StackOperation)(nil), 5147 (*RunTestsResponse_Heartbeat)(nil), 5148 } 5149 file_testing_proto_msgTypes[42].OneofWrappers = []interface{}{ 5150 (*StackOperationRequest_Reset_)(nil), 5151 (*StackOperationRequest_PreTest)(nil), 5152 (*StackOperationRequest_PostTest)(nil), 5153 (*StackOperationRequest_Status)(nil), 5154 (*StackOperationRequest_SetDirty)(nil), 5155 (*StackOperationRequest_Errors)(nil), 5156 (*StackOperationRequest_Value)(nil), 5157 } 5158 type x struct{} 5159 out := protoimpl.TypeBuilder{ 5160 File: protoimpl.DescBuilder{ 5161 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 5162 RawDescriptor: file_testing_proto_rawDesc, 5163 NumEnums: 3, 5164 NumMessages: 54, 5165 NumExtensions: 0, 5166 NumServices: 1, 5167 }, 5168 GoTypes: file_testing_proto_goTypes, 5169 DependencyIndexes: file_testing_proto_depIdxs, 5170 EnumInfos: file_testing_proto_enumTypes, 5171 MessageInfos: file_testing_proto_msgTypes, 5172 }.Build() 5173 File_testing_proto = out.File 5174 file_testing_proto_rawDesc = nil 5175 file_testing_proto_goTypes = nil 5176 file_testing_proto_depIdxs = nil 5177 } 5178 5179 // Reference imports to suppress errors if they are not otherwise used. 5180 var _ context.Context 5181 var _ grpc.ClientConnInterface 5182 5183 // This is a compile-time assertion to ensure that this generated file 5184 // is compatible with the grpc package it is being compiled against. 5185 const _ = grpc.SupportPackageIsVersion6 5186 5187 // TestServiceClient is the client API for TestService service. 5188 // 5189 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 5190 type TestServiceClient interface { 5191 // ListEntities requests all entities available on the server. 5192 ListEntities(ctx context.Context, in *ListEntitiesRequest, opts ...grpc.CallOption) (*ListEntitiesResponse, error) 5193 // GlobalRuntimeVars requests all global runtime variables declared on the 5194 // server. 5195 GlobalRuntimeVars(ctx context.Context, in *GlobalRuntimeVarsRequest, opts ...grpc.CallOption) (*GlobalRuntimeVarsResponse, error) 5196 // RunTests requests to run tests. 5197 // A client must send an initial request message containing RunTestsInit to 5198 // a server. Then a server starts running tests and report progress in 5199 // streamed response messages. 5200 RunTests(ctx context.Context, opts ...grpc.CallOption) (TestService_RunTestsClient, error) 5201 // GetDUTInfo requests to collect DUT system information. 5202 GetDUTInfo(ctx context.Context, in *GetDUTInfoRequest, opts ...grpc.CallOption) (*GetDUTInfoResponse, error) 5203 // GetSysInfoState requests to collect the initial sysinfo state of the DUT. 5204 GetSysInfoState(ctx context.Context, in *GetSysInfoStateRequest, opts ...grpc.CallOption) (*GetSysInfoStateResponse, error) 5205 // CollectSysInfo requests to collect the sysinfo, considering diff from the 5206 // given initial sysinfo state. 5207 CollectSysInfo(ctx context.Context, in *CollectSysInfoRequest, opts ...grpc.CallOption) (*CollectSysInfoResponse, error) 5208 // DownloadPrivateBundles requests to download private bundles and install 5209 // them to the DUT. 5210 DownloadPrivateBundles(ctx context.Context, in *DownloadPrivateBundlesRequest, opts ...grpc.CallOption) (*DownloadPrivateBundlesResponse, error) 5211 // StreamFile requests to stream a specify file. 5212 StreamFile(ctx context.Context, in *StreamFileRequest, opts ...grpc.CallOption) (TestService_StreamFileClient, error) 5213 } 5214 5215 type testServiceClient struct { 5216 cc grpc.ClientConnInterface 5217 } 5218 5219 func NewTestServiceClient(cc grpc.ClientConnInterface) TestServiceClient { 5220 return &testServiceClient{cc} 5221 } 5222 5223 func (c *testServiceClient) ListEntities(ctx context.Context, in *ListEntitiesRequest, opts ...grpc.CallOption) (*ListEntitiesResponse, error) { 5224 out := new(ListEntitiesResponse) 5225 err := c.cc.Invoke(ctx, "/tast.core.TestService/ListEntities", in, out, opts...) 5226 if err != nil { 5227 return nil, err 5228 } 5229 return out, nil 5230 } 5231 5232 func (c *testServiceClient) GlobalRuntimeVars(ctx context.Context, in *GlobalRuntimeVarsRequest, opts ...grpc.CallOption) (*GlobalRuntimeVarsResponse, error) { 5233 out := new(GlobalRuntimeVarsResponse) 5234 err := c.cc.Invoke(ctx, "/tast.core.TestService/GlobalRuntimeVars", in, out, opts...) 5235 if err != nil { 5236 return nil, err 5237 } 5238 return out, nil 5239 } 5240 5241 func (c *testServiceClient) RunTests(ctx context.Context, opts ...grpc.CallOption) (TestService_RunTestsClient, error) { 5242 stream, err := c.cc.NewStream(ctx, &_TestService_serviceDesc.Streams[0], "/tast.core.TestService/RunTests", opts...) 5243 if err != nil { 5244 return nil, err 5245 } 5246 x := &testServiceRunTestsClient{stream} 5247 return x, nil 5248 } 5249 5250 type TestService_RunTestsClient interface { 5251 Send(*RunTestsRequest) error 5252 Recv() (*RunTestsResponse, error) 5253 grpc.ClientStream 5254 } 5255 5256 type testServiceRunTestsClient struct { 5257 grpc.ClientStream 5258 } 5259 5260 func (x *testServiceRunTestsClient) Send(m *RunTestsRequest) error { 5261 return x.ClientStream.SendMsg(m) 5262 } 5263 5264 func (x *testServiceRunTestsClient) Recv() (*RunTestsResponse, error) { 5265 m := new(RunTestsResponse) 5266 if err := x.ClientStream.RecvMsg(m); err != nil { 5267 return nil, err 5268 } 5269 return m, nil 5270 } 5271 5272 func (c *testServiceClient) GetDUTInfo(ctx context.Context, in *GetDUTInfoRequest, opts ...grpc.CallOption) (*GetDUTInfoResponse, error) { 5273 out := new(GetDUTInfoResponse) 5274 err := c.cc.Invoke(ctx, "/tast.core.TestService/GetDUTInfo", in, out, opts...) 5275 if err != nil { 5276 return nil, err 5277 } 5278 return out, nil 5279 } 5280 5281 func (c *testServiceClient) GetSysInfoState(ctx context.Context, in *GetSysInfoStateRequest, opts ...grpc.CallOption) (*GetSysInfoStateResponse, error) { 5282 out := new(GetSysInfoStateResponse) 5283 err := c.cc.Invoke(ctx, "/tast.core.TestService/GetSysInfoState", in, out, opts...) 5284 if err != nil { 5285 return nil, err 5286 } 5287 return out, nil 5288 } 5289 5290 func (c *testServiceClient) CollectSysInfo(ctx context.Context, in *CollectSysInfoRequest, opts ...grpc.CallOption) (*CollectSysInfoResponse, error) { 5291 out := new(CollectSysInfoResponse) 5292 err := c.cc.Invoke(ctx, "/tast.core.TestService/CollectSysInfo", in, out, opts...) 5293 if err != nil { 5294 return nil, err 5295 } 5296 return out, nil 5297 } 5298 5299 func (c *testServiceClient) DownloadPrivateBundles(ctx context.Context, in *DownloadPrivateBundlesRequest, opts ...grpc.CallOption) (*DownloadPrivateBundlesResponse, error) { 5300 out := new(DownloadPrivateBundlesResponse) 5301 err := c.cc.Invoke(ctx, "/tast.core.TestService/DownloadPrivateBundles", in, out, opts...) 5302 if err != nil { 5303 return nil, err 5304 } 5305 return out, nil 5306 } 5307 5308 func (c *testServiceClient) StreamFile(ctx context.Context, in *StreamFileRequest, opts ...grpc.CallOption) (TestService_StreamFileClient, error) { 5309 stream, err := c.cc.NewStream(ctx, &_TestService_serviceDesc.Streams[1], "/tast.core.TestService/StreamFile", opts...) 5310 if err != nil { 5311 return nil, err 5312 } 5313 x := &testServiceStreamFileClient{stream} 5314 if err := x.ClientStream.SendMsg(in); err != nil { 5315 return nil, err 5316 } 5317 if err := x.ClientStream.CloseSend(); err != nil { 5318 return nil, err 5319 } 5320 return x, nil 5321 } 5322 5323 type TestService_StreamFileClient interface { 5324 Recv() (*StreamFileResponse, error) 5325 grpc.ClientStream 5326 } 5327 5328 type testServiceStreamFileClient struct { 5329 grpc.ClientStream 5330 } 5331 5332 func (x *testServiceStreamFileClient) Recv() (*StreamFileResponse, error) { 5333 m := new(StreamFileResponse) 5334 if err := x.ClientStream.RecvMsg(m); err != nil { 5335 return nil, err 5336 } 5337 return m, nil 5338 } 5339 5340 // TestServiceServer is the server API for TestService service. 5341 type TestServiceServer interface { 5342 // ListEntities requests all entities available on the server. 5343 ListEntities(context.Context, *ListEntitiesRequest) (*ListEntitiesResponse, error) 5344 // GlobalRuntimeVars requests all global runtime variables declared on the 5345 // server. 5346 GlobalRuntimeVars(context.Context, *GlobalRuntimeVarsRequest) (*GlobalRuntimeVarsResponse, error) 5347 // RunTests requests to run tests. 5348 // A client must send an initial request message containing RunTestsInit to 5349 // a server. Then a server starts running tests and report progress in 5350 // streamed response messages. 5351 RunTests(TestService_RunTestsServer) error 5352 // GetDUTInfo requests to collect DUT system information. 5353 GetDUTInfo(context.Context, *GetDUTInfoRequest) (*GetDUTInfoResponse, error) 5354 // GetSysInfoState requests to collect the initial sysinfo state of the DUT. 5355 GetSysInfoState(context.Context, *GetSysInfoStateRequest) (*GetSysInfoStateResponse, error) 5356 // CollectSysInfo requests to collect the sysinfo, considering diff from the 5357 // given initial sysinfo state. 5358 CollectSysInfo(context.Context, *CollectSysInfoRequest) (*CollectSysInfoResponse, error) 5359 // DownloadPrivateBundles requests to download private bundles and install 5360 // them to the DUT. 5361 DownloadPrivateBundles(context.Context, *DownloadPrivateBundlesRequest) (*DownloadPrivateBundlesResponse, error) 5362 // StreamFile requests to stream a specify file. 5363 StreamFile(*StreamFileRequest, TestService_StreamFileServer) error 5364 } 5365 5366 // UnimplementedTestServiceServer can be embedded to have forward compatible implementations. 5367 type UnimplementedTestServiceServer struct { 5368 } 5369 5370 func (*UnimplementedTestServiceServer) ListEntities(context.Context, *ListEntitiesRequest) (*ListEntitiesResponse, error) { 5371 return nil, status.Errorf(codes.Unimplemented, "method ListEntities not implemented") 5372 } 5373 func (*UnimplementedTestServiceServer) GlobalRuntimeVars(context.Context, *GlobalRuntimeVarsRequest) (*GlobalRuntimeVarsResponse, error) { 5374 return nil, status.Errorf(codes.Unimplemented, "method GlobalRuntimeVars not implemented") 5375 } 5376 func (*UnimplementedTestServiceServer) RunTests(TestService_RunTestsServer) error { 5377 return status.Errorf(codes.Unimplemented, "method RunTests not implemented") 5378 } 5379 func (*UnimplementedTestServiceServer) GetDUTInfo(context.Context, *GetDUTInfoRequest) (*GetDUTInfoResponse, error) { 5380 return nil, status.Errorf(codes.Unimplemented, "method GetDUTInfo not implemented") 5381 } 5382 func (*UnimplementedTestServiceServer) GetSysInfoState(context.Context, *GetSysInfoStateRequest) (*GetSysInfoStateResponse, error) { 5383 return nil, status.Errorf(codes.Unimplemented, "method GetSysInfoState not implemented") 5384 } 5385 func (*UnimplementedTestServiceServer) CollectSysInfo(context.Context, *CollectSysInfoRequest) (*CollectSysInfoResponse, error) { 5386 return nil, status.Errorf(codes.Unimplemented, "method CollectSysInfo not implemented") 5387 } 5388 func (*UnimplementedTestServiceServer) DownloadPrivateBundles(context.Context, *DownloadPrivateBundlesRequest) (*DownloadPrivateBundlesResponse, error) { 5389 return nil, status.Errorf(codes.Unimplemented, "method DownloadPrivateBundles not implemented") 5390 } 5391 func (*UnimplementedTestServiceServer) StreamFile(*StreamFileRequest, TestService_StreamFileServer) error { 5392 return status.Errorf(codes.Unimplemented, "method StreamFile not implemented") 5393 } 5394 5395 func RegisterTestServiceServer(s *grpc.Server, srv TestServiceServer) { 5396 s.RegisterService(&_TestService_serviceDesc, srv) 5397 } 5398 5399 func _TestService_ListEntities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5400 in := new(ListEntitiesRequest) 5401 if err := dec(in); err != nil { 5402 return nil, err 5403 } 5404 if interceptor == nil { 5405 return srv.(TestServiceServer).ListEntities(ctx, in) 5406 } 5407 info := &grpc.UnaryServerInfo{ 5408 Server: srv, 5409 FullMethod: "/tast.core.TestService/ListEntities", 5410 } 5411 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5412 return srv.(TestServiceServer).ListEntities(ctx, req.(*ListEntitiesRequest)) 5413 } 5414 return interceptor(ctx, in, info, handler) 5415 } 5416 5417 func _TestService_GlobalRuntimeVars_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5418 in := new(GlobalRuntimeVarsRequest) 5419 if err := dec(in); err != nil { 5420 return nil, err 5421 } 5422 if interceptor == nil { 5423 return srv.(TestServiceServer).GlobalRuntimeVars(ctx, in) 5424 } 5425 info := &grpc.UnaryServerInfo{ 5426 Server: srv, 5427 FullMethod: "/tast.core.TestService/GlobalRuntimeVars", 5428 } 5429 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5430 return srv.(TestServiceServer).GlobalRuntimeVars(ctx, req.(*GlobalRuntimeVarsRequest)) 5431 } 5432 return interceptor(ctx, in, info, handler) 5433 } 5434 5435 func _TestService_RunTests_Handler(srv interface{}, stream grpc.ServerStream) error { 5436 return srv.(TestServiceServer).RunTests(&testServiceRunTestsServer{stream}) 5437 } 5438 5439 type TestService_RunTestsServer interface { 5440 Send(*RunTestsResponse) error 5441 Recv() (*RunTestsRequest, error) 5442 grpc.ServerStream 5443 } 5444 5445 type testServiceRunTestsServer struct { 5446 grpc.ServerStream 5447 } 5448 5449 func (x *testServiceRunTestsServer) Send(m *RunTestsResponse) error { 5450 return x.ServerStream.SendMsg(m) 5451 } 5452 5453 func (x *testServiceRunTestsServer) Recv() (*RunTestsRequest, error) { 5454 m := new(RunTestsRequest) 5455 if err := x.ServerStream.RecvMsg(m); err != nil { 5456 return nil, err 5457 } 5458 return m, nil 5459 } 5460 5461 func _TestService_GetDUTInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5462 in := new(GetDUTInfoRequest) 5463 if err := dec(in); err != nil { 5464 return nil, err 5465 } 5466 if interceptor == nil { 5467 return srv.(TestServiceServer).GetDUTInfo(ctx, in) 5468 } 5469 info := &grpc.UnaryServerInfo{ 5470 Server: srv, 5471 FullMethod: "/tast.core.TestService/GetDUTInfo", 5472 } 5473 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5474 return srv.(TestServiceServer).GetDUTInfo(ctx, req.(*GetDUTInfoRequest)) 5475 } 5476 return interceptor(ctx, in, info, handler) 5477 } 5478 5479 func _TestService_GetSysInfoState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5480 in := new(GetSysInfoStateRequest) 5481 if err := dec(in); err != nil { 5482 return nil, err 5483 } 5484 if interceptor == nil { 5485 return srv.(TestServiceServer).GetSysInfoState(ctx, in) 5486 } 5487 info := &grpc.UnaryServerInfo{ 5488 Server: srv, 5489 FullMethod: "/tast.core.TestService/GetSysInfoState", 5490 } 5491 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5492 return srv.(TestServiceServer).GetSysInfoState(ctx, req.(*GetSysInfoStateRequest)) 5493 } 5494 return interceptor(ctx, in, info, handler) 5495 } 5496 5497 func _TestService_CollectSysInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5498 in := new(CollectSysInfoRequest) 5499 if err := dec(in); err != nil { 5500 return nil, err 5501 } 5502 if interceptor == nil { 5503 return srv.(TestServiceServer).CollectSysInfo(ctx, in) 5504 } 5505 info := &grpc.UnaryServerInfo{ 5506 Server: srv, 5507 FullMethod: "/tast.core.TestService/CollectSysInfo", 5508 } 5509 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5510 return srv.(TestServiceServer).CollectSysInfo(ctx, req.(*CollectSysInfoRequest)) 5511 } 5512 return interceptor(ctx, in, info, handler) 5513 } 5514 5515 func _TestService_DownloadPrivateBundles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5516 in := new(DownloadPrivateBundlesRequest) 5517 if err := dec(in); err != nil { 5518 return nil, err 5519 } 5520 if interceptor == nil { 5521 return srv.(TestServiceServer).DownloadPrivateBundles(ctx, in) 5522 } 5523 info := &grpc.UnaryServerInfo{ 5524 Server: srv, 5525 FullMethod: "/tast.core.TestService/DownloadPrivateBundles", 5526 } 5527 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5528 return srv.(TestServiceServer).DownloadPrivateBundles(ctx, req.(*DownloadPrivateBundlesRequest)) 5529 } 5530 return interceptor(ctx, in, info, handler) 5531 } 5532 5533 func _TestService_StreamFile_Handler(srv interface{}, stream grpc.ServerStream) error { 5534 m := new(StreamFileRequest) 5535 if err := stream.RecvMsg(m); err != nil { 5536 return err 5537 } 5538 return srv.(TestServiceServer).StreamFile(m, &testServiceStreamFileServer{stream}) 5539 } 5540 5541 type TestService_StreamFileServer interface { 5542 Send(*StreamFileResponse) error 5543 grpc.ServerStream 5544 } 5545 5546 type testServiceStreamFileServer struct { 5547 grpc.ServerStream 5548 } 5549 5550 func (x *testServiceStreamFileServer) Send(m *StreamFileResponse) error { 5551 return x.ServerStream.SendMsg(m) 5552 } 5553 5554 var _TestService_serviceDesc = grpc.ServiceDesc{ 5555 ServiceName: "tast.core.TestService", 5556 HandlerType: (*TestServiceServer)(nil), 5557 Methods: []grpc.MethodDesc{ 5558 { 5559 MethodName: "ListEntities", 5560 Handler: _TestService_ListEntities_Handler, 5561 }, 5562 { 5563 MethodName: "GlobalRuntimeVars", 5564 Handler: _TestService_GlobalRuntimeVars_Handler, 5565 }, 5566 { 5567 MethodName: "GetDUTInfo", 5568 Handler: _TestService_GetDUTInfo_Handler, 5569 }, 5570 { 5571 MethodName: "GetSysInfoState", 5572 Handler: _TestService_GetSysInfoState_Handler, 5573 }, 5574 { 5575 MethodName: "CollectSysInfo", 5576 Handler: _TestService_CollectSysInfo_Handler, 5577 }, 5578 { 5579 MethodName: "DownloadPrivateBundles", 5580 Handler: _TestService_DownloadPrivateBundles_Handler, 5581 }, 5582 }, 5583 Streams: []grpc.StreamDesc{ 5584 { 5585 StreamName: "RunTests", 5586 Handler: _TestService_RunTests_Handler, 5587 ServerStreams: true, 5588 ClientStreams: true, 5589 }, 5590 { 5591 StreamName: "StreamFile", 5592 Handler: _TestService_StreamFile_Handler, 5593 ServerStreams: true, 5594 }, 5595 }, 5596 Metadata: "testing.proto", 5597 }