1// Copyright 2019 Google LLC. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16// Code generated by protoc-gen-go. DO NOT EDIT. 17// versions: 18// protoc-gen-go v1.25.0 19// protoc v3.13.0 20// source: google/devtools/resultstore/v2/action.proto 21 22package resultstore 23 24import ( 25 reflect "reflect" 26 sync "sync" 27 28 proto "github.com/golang/protobuf/proto" 29 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 30 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 31 durationpb "google.golang.org/protobuf/types/known/durationpb" 32) 33 34const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39) 40 41// This is a compile-time assertion that a sufficiently up-to-date version 42// of the legacy proto package is being used. 43const _ = proto.ProtoPackageIsVersion4 44 45// Indicates how/where this Action was executed. 46type ExecutionStrategy int32 47 48const ( 49 // The action did not indicate how it was executed. 50 ExecutionStrategy_EXECUTION_STRATEGY_UNSPECIFIED ExecutionStrategy = 0 51 // The action was executed in some other form. 52 ExecutionStrategy_OTHER_ENVIRONMENT ExecutionStrategy = 1 53 // The action used a remote build service. 54 ExecutionStrategy_REMOTE_SERVICE ExecutionStrategy = 2 55 // The action was executed locally, in parallel with other actions. 56 ExecutionStrategy_LOCAL_PARALLEL ExecutionStrategy = 3 57 // The action was executed locally, without parallelism. 58 ExecutionStrategy_LOCAL_SEQUENTIAL ExecutionStrategy = 4 59) 60 61// Enum value maps for ExecutionStrategy. 62var ( 63 ExecutionStrategy_name = map[int32]string{ 64 0: "EXECUTION_STRATEGY_UNSPECIFIED", 65 1: "OTHER_ENVIRONMENT", 66 2: "REMOTE_SERVICE", 67 3: "LOCAL_PARALLEL", 68 4: "LOCAL_SEQUENTIAL", 69 } 70 ExecutionStrategy_value = map[string]int32{ 71 "EXECUTION_STRATEGY_UNSPECIFIED": 0, 72 "OTHER_ENVIRONMENT": 1, 73 "REMOTE_SERVICE": 2, 74 "LOCAL_PARALLEL": 3, 75 "LOCAL_SEQUENTIAL": 4, 76 } 77) 78 79func (x ExecutionStrategy) Enum() *ExecutionStrategy { 80 p := new(ExecutionStrategy) 81 *p = x 82 return p 83} 84 85func (x ExecutionStrategy) String() string { 86 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 87} 88 89func (ExecutionStrategy) Descriptor() protoreflect.EnumDescriptor { 90 return file_google_devtools_resultstore_v2_action_proto_enumTypes[0].Descriptor() 91} 92 93func (ExecutionStrategy) Type() protoreflect.EnumType { 94 return &file_google_devtools_resultstore_v2_action_proto_enumTypes[0] 95} 96 97func (x ExecutionStrategy) Number() protoreflect.EnumNumber { 98 return protoreflect.EnumNumber(x) 99} 100 101// Deprecated: Use ExecutionStrategy.Descriptor instead. 102func (ExecutionStrategy) EnumDescriptor() ([]byte, []int) { 103 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{0} 104} 105 106// Most build systems cache build results to speed up incremental builds. 107// Some also cache test results too. This indicates whether the test results 108// were found in a cache, and where that cache was located. 109type TestCaching int32 110 111const ( 112 // The implicit default enum value. Should never be set. 113 TestCaching_TEST_CACHING_UNSPECIFIED TestCaching = 0 114 // The test result was found in a local cache, so it wasn't run again. 115 TestCaching_LOCAL_CACHE_HIT TestCaching = 1 116 // The test result was found in a remote cache, so it wasn't run again. 117 TestCaching_REMOTE_CACHE_HIT TestCaching = 2 118 // The test result was not found in any cache, so it had to be run again. 119 TestCaching_CACHE_MISS TestCaching = 3 120) 121 122// Enum value maps for TestCaching. 123var ( 124 TestCaching_name = map[int32]string{ 125 0: "TEST_CACHING_UNSPECIFIED", 126 1: "LOCAL_CACHE_HIT", 127 2: "REMOTE_CACHE_HIT", 128 3: "CACHE_MISS", 129 } 130 TestCaching_value = map[string]int32{ 131 "TEST_CACHING_UNSPECIFIED": 0, 132 "LOCAL_CACHE_HIT": 1, 133 "REMOTE_CACHE_HIT": 2, 134 "CACHE_MISS": 3, 135 } 136) 137 138func (x TestCaching) Enum() *TestCaching { 139 p := new(TestCaching) 140 *p = x 141 return p 142} 143 144func (x TestCaching) String() string { 145 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 146} 147 148func (TestCaching) Descriptor() protoreflect.EnumDescriptor { 149 return file_google_devtools_resultstore_v2_action_proto_enumTypes[1].Descriptor() 150} 151 152func (TestCaching) Type() protoreflect.EnumType { 153 return &file_google_devtools_resultstore_v2_action_proto_enumTypes[1] 154} 155 156func (x TestCaching) Number() protoreflect.EnumNumber { 157 return protoreflect.EnumNumber(x) 158} 159 160// Deprecated: Use TestCaching.Descriptor instead. 161func (TestCaching) EnumDescriptor() ([]byte, []int) { 162 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{1} 163} 164 165// An action that happened as part of a configured target. This action could be 166// a build, a test, or another type of action, as specified in action_type 167// oneof. 168// 169// Each parent ConfiguredTarget resource should have at least one Action as its 170// child resource before the invocation is finalized. For a simple build, at 171// least one build action should be created to represent the build result, and 172// at at least one test action should be created to represent the test result, 173// if any. 174type Action struct { 175 state protoimpl.MessageState 176 sizeCache protoimpl.SizeCache 177 unknownFields protoimpl.UnknownFields 178 179 // The resource name. Its format must be: 180 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/url_encode(${CONFIG_ID})/actions/${url_encode(ACTION_ID)} 181 // 182 // See CreateActionRequest proto for more information. 183 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 184 // The resource ID components that identify the Action. They must match the 185 // resource name after proper encoding. 186 Id *Action_Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` 187 // The status of the action. 188 StatusAttributes *StatusAttributes `protobuf:"bytes,3,opt,name=status_attributes,json=statusAttributes,proto3" json:"status_attributes,omitempty"` 189 // The timing of the whole action. For TestActions, the start time may be 190 // before the test actually started, and the duration may last until after the 191 // test actually finished. 192 Timing *Timing `protobuf:"bytes,4,opt,name=timing,proto3" json:"timing,omitempty"` 193 // The type of the action. The type of an action may not change over the 194 // lifetime of the invocation. If one of these fields is to be set, it must be 195 // set in the CreateAction method. It may be set to an empty message that is 196 // populated in later methods or post-processing. A generic "untyped" action 197 // can be created by not setting any of these fields. An untyped action will 198 // be untyped for the lifetime of the invocation. 199 // 200 // Types that are assignable to ActionType: 201 // *Action_BuildAction 202 // *Action_TestAction 203 ActionType isAction_ActionType `protobuf_oneof:"action_type"` 204 // General attributes of the action. 205 ActionAttributes *ActionAttributes `protobuf:"bytes,5,opt,name=action_attributes,json=actionAttributes,proto3" json:"action_attributes,omitempty"` 206 // A list of resources that this action depended upon. May be used to provide 207 // the cause of a build failure in the case of a failed build action. 208 ActionDependencies []*Dependency `protobuf:"bytes,14,rep,name=action_dependencies,json=actionDependencies,proto3" json:"action_dependencies,omitempty"` 209 // Arbitrary name-value pairs. 210 // This is implemented as a multi-map. Multiple properties are allowed with 211 // the same key. Properties will be returned in lexicographical order by key. 212 Properties []*Property `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` 213 // A list of file references for action level files. 214 // The file IDs must be unique within this list. Duplicate file IDs will 215 // result in an error. Files will be returned in lexicographical order by ID. 216 // 217 // Files with the following reserved file IDs cause specific post-processing 218 // or have special handling. These files must be immediately available to 219 // ResultStore for processing when the reference is uploaded. 220 // 221 // For build actions: 222 // stdout: The stdout of the action 223 // stderr: The stderr of the action 224 // baseline.lcov: Baseline coverage file to be parsed by the server. This 225 // uses a stripped down implementation of the LCOV standard. 226 // http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php 227 // 228 // For test actions: 229 // test.xml: The test suite / test case data in XML format. 230 // test.log: The combined stdout and stderr of the test process. 231 // test.lcov: Coverage file to be parsed by the server. This uses a stripped 232 // down implementation of the LCOV standard. 233 // http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php 234 Files []*File `protobuf:"bytes,8,rep,name=files,proto3" json:"files,omitempty"` 235 // List of names of file sets that are referenced from this Action. 236 // Each name must point to a file set under the same Invocation. The name 237 // format must be: invocations/${INVOCATION_ID}/fileSets/${FILE_SET_ID} 238 FileSets []string `protobuf:"bytes,15,rep,name=file_sets,json=fileSets,proto3" json:"file_sets,omitempty"` 239 // Coverage data was collected while running the build or test action. This 240 // usually includes line coverage, and may also include branch coverage. 241 // For test actions, this is usually only for the source files which were 242 // actually executed by that particular action. 243 // For build actions, this is the baseline coverage, which captures the 244 // instrumented files and lines, without any lines being executed. This 245 // ensures files that are never covered at all are included. 246 Coverage *ActionCoverage `protobuf:"bytes,11,opt,name=coverage,proto3" json:"coverage,omitempty"` 247 // ResultStore will read and parse Files with reserved IDs listed above. Read 248 // and parse errors for all these Files are reported here. 249 // This is implemented as a map, with one FileProcessingErrors for each file. 250 // Typically produced when parsing Files, but may also be provided directly 251 // by clients. 252 FileProcessingErrors []*FileProcessingErrors `protobuf:"bytes,13,rep,name=file_processing_errors,json=fileProcessingErrors,proto3" json:"file_processing_errors,omitempty"` 253} 254 255func (x *Action) Reset() { 256 *x = Action{} 257 if protoimpl.UnsafeEnabled { 258 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[0] 259 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 260 ms.StoreMessageInfo(mi) 261 } 262} 263 264func (x *Action) String() string { 265 return protoimpl.X.MessageStringOf(x) 266} 267 268func (*Action) ProtoMessage() {} 269 270func (x *Action) ProtoReflect() protoreflect.Message { 271 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[0] 272 if protoimpl.UnsafeEnabled && x != nil { 273 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 274 if ms.LoadMessageInfo() == nil { 275 ms.StoreMessageInfo(mi) 276 } 277 return ms 278 } 279 return mi.MessageOf(x) 280} 281 282// Deprecated: Use Action.ProtoReflect.Descriptor instead. 283func (*Action) Descriptor() ([]byte, []int) { 284 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{0} 285} 286 287func (x *Action) GetName() string { 288 if x != nil { 289 return x.Name 290 } 291 return "" 292} 293 294func (x *Action) GetId() *Action_Id { 295 if x != nil { 296 return x.Id 297 } 298 return nil 299} 300 301func (x *Action) GetStatusAttributes() *StatusAttributes { 302 if x != nil { 303 return x.StatusAttributes 304 } 305 return nil 306} 307 308func (x *Action) GetTiming() *Timing { 309 if x != nil { 310 return x.Timing 311 } 312 return nil 313} 314 315func (m *Action) GetActionType() isAction_ActionType { 316 if m != nil { 317 return m.ActionType 318 } 319 return nil 320} 321 322func (x *Action) GetBuildAction() *BuildAction { 323 if x, ok := x.GetActionType().(*Action_BuildAction); ok { 324 return x.BuildAction 325 } 326 return nil 327} 328 329func (x *Action) GetTestAction() *TestAction { 330 if x, ok := x.GetActionType().(*Action_TestAction); ok { 331 return x.TestAction 332 } 333 return nil 334} 335 336func (x *Action) GetActionAttributes() *ActionAttributes { 337 if x != nil { 338 return x.ActionAttributes 339 } 340 return nil 341} 342 343func (x *Action) GetActionDependencies() []*Dependency { 344 if x != nil { 345 return x.ActionDependencies 346 } 347 return nil 348} 349 350func (x *Action) GetProperties() []*Property { 351 if x != nil { 352 return x.Properties 353 } 354 return nil 355} 356 357func (x *Action) GetFiles() []*File { 358 if x != nil { 359 return x.Files 360 } 361 return nil 362} 363 364func (x *Action) GetFileSets() []string { 365 if x != nil { 366 return x.FileSets 367 } 368 return nil 369} 370 371func (x *Action) GetCoverage() *ActionCoverage { 372 if x != nil { 373 return x.Coverage 374 } 375 return nil 376} 377 378func (x *Action) GetFileProcessingErrors() []*FileProcessingErrors { 379 if x != nil { 380 return x.FileProcessingErrors 381 } 382 return nil 383} 384 385type isAction_ActionType interface { 386 isAction_ActionType() 387} 388 389type Action_BuildAction struct { 390 // Used only when this action represents a build action. 391 BuildAction *BuildAction `protobuf:"bytes,9,opt,name=build_action,json=buildAction,proto3,oneof"` 392} 393 394type Action_TestAction struct { 395 // Only for test actions. 396 TestAction *TestAction `protobuf:"bytes,10,opt,name=test_action,json=testAction,proto3,oneof"` 397} 398 399func (*Action_BuildAction) isAction_ActionType() {} 400 401func (*Action_TestAction) isAction_ActionType() {} 402 403// A build action, such as building a java library. 404type BuildAction struct { 405 state protoimpl.MessageState 406 sizeCache protoimpl.SizeCache 407 unknownFields protoimpl.UnknownFields 408 409 // The type of the action. This is intended to be a clue as to how the output 410 // of the action should be parsed. For example "javac" for a Java compile 411 // action. 412 Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` 413 // The "primary" input artifact processed by this action. E.g., the .cc file 414 // of a C++ compile action. Empty string ("") if the action has no input 415 // artifacts or no "primary" input artifact. 416 PrimaryInputPath string `protobuf:"bytes,2,opt,name=primary_input_path,json=primaryInputPath,proto3" json:"primary_input_path,omitempty"` 417 // The "primary" output artifact processed by this action. E.g., the .o file 418 // of a C++ compile action. Empty string ("") if the action has no output 419 // artifacts or no "primary" output artifact. 420 PrimaryOutputPath string `protobuf:"bytes,3,opt,name=primary_output_path,json=primaryOutputPath,proto3" json:"primary_output_path,omitempty"` 421} 422 423func (x *BuildAction) Reset() { 424 *x = BuildAction{} 425 if protoimpl.UnsafeEnabled { 426 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[1] 427 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 428 ms.StoreMessageInfo(mi) 429 } 430} 431 432func (x *BuildAction) String() string { 433 return protoimpl.X.MessageStringOf(x) 434} 435 436func (*BuildAction) ProtoMessage() {} 437 438func (x *BuildAction) ProtoReflect() protoreflect.Message { 439 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[1] 440 if protoimpl.UnsafeEnabled && x != nil { 441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 442 if ms.LoadMessageInfo() == nil { 443 ms.StoreMessageInfo(mi) 444 } 445 return ms 446 } 447 return mi.MessageOf(x) 448} 449 450// Deprecated: Use BuildAction.ProtoReflect.Descriptor instead. 451func (*BuildAction) Descriptor() ([]byte, []int) { 452 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{1} 453} 454 455func (x *BuildAction) GetType() string { 456 if x != nil { 457 return x.Type 458 } 459 return "" 460} 461 462func (x *BuildAction) GetPrimaryInputPath() string { 463 if x != nil { 464 return x.PrimaryInputPath 465 } 466 return "" 467} 468 469func (x *BuildAction) GetPrimaryOutputPath() string { 470 if x != nil { 471 return x.PrimaryOutputPath 472 } 473 return "" 474} 475 476// A test action, such as running a JUnit4 test binary. 477type TestAction struct { 478 state protoimpl.MessageState 479 sizeCache protoimpl.SizeCache 480 unknownFields protoimpl.UnknownFields 481 482 // Timing data for execution of the test action. 483 TestTiming *TestTiming `protobuf:"bytes,1,opt,name=test_timing,json=testTiming,proto3" json:"test_timing,omitempty"` 484 // If the test is divided up into shards to improve performance, set this to 485 // indicate which shard this test action is for. Value must be in interval 486 // [0, total_shard_count). Defaults to 0, which is appropriate if all test 487 // cases are run in the same process. 488 ShardNumber int32 `protobuf:"varint,2,opt,name=shard_number,json=shardNumber,proto3" json:"shard_number,omitempty"` 489 // If the user requested that every test be run multiple times, as is often 490 // done to measure flakiness, set this to indicate which run this test action 491 // is for. Value must be in interval [0, total_run_count). Defaults to 0, 492 // which is appropriate if multiple runs were not requested. 493 RunNumber int32 `protobuf:"varint,3,opt,name=run_number,json=runNumber,proto3" json:"run_number,omitempty"` 494 // If flaky tests are automatically retried, set this to indicate which 495 // attempt this test action is for. (e.g. 0 for the first attempt, 1 for 496 // second, and so on). Defaults to 0, which is appropriate if this is only 497 // attempt. 498 AttemptNumber int32 `protobuf:"varint,4,opt,name=attempt_number,json=attemptNumber,proto3" json:"attempt_number,omitempty"` 499 // A tree of test suites and test cases that were run by this test action. 500 // Each test case has its own status information, including stack traces. 501 // Typically produced by parsing an XML Log, but may also be provided directly 502 // by clients. 503 TestSuite *TestSuite `protobuf:"bytes,5,opt,name=test_suite,json=testSuite,proto3" json:"test_suite,omitempty"` 504 // Warnings for this test action. 505 Warnings []*TestWarning `protobuf:"bytes,8,rep,name=warnings,proto3" json:"warnings,omitempty"` 506 // Estimated memory consumption of the test action, in bytes. A default value 507 // of 0 means there is no memory consumption estimate specified. 508 EstimatedMemoryBytes int64 `protobuf:"varint,10,opt,name=estimated_memory_bytes,json=estimatedMemoryBytes,proto3" json:"estimated_memory_bytes,omitempty"` 509} 510 511func (x *TestAction) Reset() { 512 *x = TestAction{} 513 if protoimpl.UnsafeEnabled { 514 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[2] 515 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 516 ms.StoreMessageInfo(mi) 517 } 518} 519 520func (x *TestAction) String() string { 521 return protoimpl.X.MessageStringOf(x) 522} 523 524func (*TestAction) ProtoMessage() {} 525 526func (x *TestAction) ProtoReflect() protoreflect.Message { 527 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[2] 528 if protoimpl.UnsafeEnabled && x != nil { 529 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 530 if ms.LoadMessageInfo() == nil { 531 ms.StoreMessageInfo(mi) 532 } 533 return ms 534 } 535 return mi.MessageOf(x) 536} 537 538// Deprecated: Use TestAction.ProtoReflect.Descriptor instead. 539func (*TestAction) Descriptor() ([]byte, []int) { 540 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{2} 541} 542 543func (x *TestAction) GetTestTiming() *TestTiming { 544 if x != nil { 545 return x.TestTiming 546 } 547 return nil 548} 549 550func (x *TestAction) GetShardNumber() int32 { 551 if x != nil { 552 return x.ShardNumber 553 } 554 return 0 555} 556 557func (x *TestAction) GetRunNumber() int32 { 558 if x != nil { 559 return x.RunNumber 560 } 561 return 0 562} 563 564func (x *TestAction) GetAttemptNumber() int32 { 565 if x != nil { 566 return x.AttemptNumber 567 } 568 return 0 569} 570 571func (x *TestAction) GetTestSuite() *TestSuite { 572 if x != nil { 573 return x.TestSuite 574 } 575 return nil 576} 577 578func (x *TestAction) GetWarnings() []*TestWarning { 579 if x != nil { 580 return x.Warnings 581 } 582 return nil 583} 584 585func (x *TestAction) GetEstimatedMemoryBytes() int64 { 586 if x != nil { 587 return x.EstimatedMemoryBytes 588 } 589 return 0 590} 591 592// General attributes of an action 593type ActionAttributes struct { 594 state protoimpl.MessageState 595 sizeCache protoimpl.SizeCache 596 unknownFields protoimpl.UnknownFields 597 598 // Strategy used for executing the action. 599 ExecutionStrategy ExecutionStrategy `protobuf:"varint,1,opt,name=execution_strategy,json=executionStrategy,proto3,enum=google.devtools.resultstore.v2.ExecutionStrategy" json:"execution_strategy,omitempty"` 600 // Exit code of the process that ran the action. A non-zero value means 601 // failure. 602 ExitCode int32 `protobuf:"varint,2,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` 603 // Where the action was run. 604 Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"` 605 // Information about the input files used in all actions under this configured 606 // target. 607 InputFileInfo *InputFileInfo `protobuf:"bytes,4,opt,name=input_file_info,json=inputFileInfo,proto3" json:"input_file_info,omitempty"` 608} 609 610func (x *ActionAttributes) Reset() { 611 *x = ActionAttributes{} 612 if protoimpl.UnsafeEnabled { 613 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[3] 614 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 615 ms.StoreMessageInfo(mi) 616 } 617} 618 619func (x *ActionAttributes) String() string { 620 return protoimpl.X.MessageStringOf(x) 621} 622 623func (*ActionAttributes) ProtoMessage() {} 624 625func (x *ActionAttributes) ProtoReflect() protoreflect.Message { 626 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[3] 627 if protoimpl.UnsafeEnabled && x != nil { 628 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 629 if ms.LoadMessageInfo() == nil { 630 ms.StoreMessageInfo(mi) 631 } 632 return ms 633 } 634 return mi.MessageOf(x) 635} 636 637// Deprecated: Use ActionAttributes.ProtoReflect.Descriptor instead. 638func (*ActionAttributes) Descriptor() ([]byte, []int) { 639 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{3} 640} 641 642func (x *ActionAttributes) GetExecutionStrategy() ExecutionStrategy { 643 if x != nil { 644 return x.ExecutionStrategy 645 } 646 return ExecutionStrategy_EXECUTION_STRATEGY_UNSPECIFIED 647} 648 649func (x *ActionAttributes) GetExitCode() int32 { 650 if x != nil { 651 return x.ExitCode 652 } 653 return 0 654} 655 656func (x *ActionAttributes) GetHostname() string { 657 if x != nil { 658 return x.Hostname 659 } 660 return "" 661} 662 663func (x *ActionAttributes) GetInputFileInfo() *InputFileInfo { 664 if x != nil { 665 return x.InputFileInfo 666 } 667 return nil 668} 669 670// File count and size information for the input files to a configured target. 671type InputFileInfo struct { 672 state protoimpl.MessageState 673 sizeCache protoimpl.SizeCache 674 unknownFields protoimpl.UnknownFields 675 676 // The number of input files (counting every file, even if a duplicate). 677 Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` 678 // The number of distinct input files. 679 DistinctCount int64 `protobuf:"varint,2,opt,name=distinct_count,json=distinctCount,proto3" json:"distinct_count,omitempty"` 680 // The max number of input files allowed by the build system (counting every 681 // file, even if a duplicate). 682 CountLimit int64 `protobuf:"varint,3,opt,name=count_limit,json=countLimit,proto3" json:"count_limit,omitempty"` 683 // The total size of the distinct input files. 684 DistinctBytes int64 `protobuf:"varint,4,opt,name=distinct_bytes,json=distinctBytes,proto3" json:"distinct_bytes,omitempty"` 685 // The max allowed total size of the distinct input files. 686 DistinctByteLimit int64 `protobuf:"varint,5,opt,name=distinct_byte_limit,json=distinctByteLimit,proto3" json:"distinct_byte_limit,omitempty"` 687} 688 689func (x *InputFileInfo) Reset() { 690 *x = InputFileInfo{} 691 if protoimpl.UnsafeEnabled { 692 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[4] 693 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 694 ms.StoreMessageInfo(mi) 695 } 696} 697 698func (x *InputFileInfo) String() string { 699 return protoimpl.X.MessageStringOf(x) 700} 701 702func (*InputFileInfo) ProtoMessage() {} 703 704func (x *InputFileInfo) ProtoReflect() protoreflect.Message { 705 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[4] 706 if protoimpl.UnsafeEnabled && x != nil { 707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 708 if ms.LoadMessageInfo() == nil { 709 ms.StoreMessageInfo(mi) 710 } 711 return ms 712 } 713 return mi.MessageOf(x) 714} 715 716// Deprecated: Use InputFileInfo.ProtoReflect.Descriptor instead. 717func (*InputFileInfo) Descriptor() ([]byte, []int) { 718 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{4} 719} 720 721func (x *InputFileInfo) GetCount() int64 { 722 if x != nil { 723 return x.Count 724 } 725 return 0 726} 727 728func (x *InputFileInfo) GetDistinctCount() int64 { 729 if x != nil { 730 return x.DistinctCount 731 } 732 return 0 733} 734 735func (x *InputFileInfo) GetCountLimit() int64 { 736 if x != nil { 737 return x.CountLimit 738 } 739 return 0 740} 741 742func (x *InputFileInfo) GetDistinctBytes() int64 { 743 if x != nil { 744 return x.DistinctBytes 745 } 746 return 0 747} 748 749func (x *InputFileInfo) GetDistinctByteLimit() int64 { 750 if x != nil { 751 return x.DistinctByteLimit 752 } 753 return 0 754} 755 756// Timing data for tests executed locally on the machine running the build. 757type LocalTestTiming struct { 758 state protoimpl.MessageState 759 sizeCache protoimpl.SizeCache 760 unknownFields protoimpl.UnknownFields 761 762 // Time taken by the test process, typically surrounded by a small wrapper 763 // script. 764 TestProcessDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=test_process_duration,json=testProcessDuration,proto3" json:"test_process_duration,omitempty"` 765} 766 767func (x *LocalTestTiming) Reset() { 768 *x = LocalTestTiming{} 769 if protoimpl.UnsafeEnabled { 770 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[5] 771 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 772 ms.StoreMessageInfo(mi) 773 } 774} 775 776func (x *LocalTestTiming) String() string { 777 return protoimpl.X.MessageStringOf(x) 778} 779 780func (*LocalTestTiming) ProtoMessage() {} 781 782func (x *LocalTestTiming) ProtoReflect() protoreflect.Message { 783 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[5] 784 if protoimpl.UnsafeEnabled && x != nil { 785 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 786 if ms.LoadMessageInfo() == nil { 787 ms.StoreMessageInfo(mi) 788 } 789 return ms 790 } 791 return mi.MessageOf(x) 792} 793 794// Deprecated: Use LocalTestTiming.ProtoReflect.Descriptor instead. 795func (*LocalTestTiming) Descriptor() ([]byte, []int) { 796 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{5} 797} 798 799func (x *LocalTestTiming) GetTestProcessDuration() *durationpb.Duration { 800 if x != nil { 801 return x.TestProcessDuration 802 } 803 return nil 804} 805 806// Timing data for one attempt to execute a test action remotely. 807type RemoteTestAttemptTiming struct { 808 state protoimpl.MessageState 809 sizeCache protoimpl.SizeCache 810 unknownFields protoimpl.UnknownFields 811 812 // Idle period before the test process is invoked on the remote machine. 813 QueueDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=queue_duration,json=queueDuration,proto3" json:"queue_duration,omitempty"` 814 // Time to upload data dependencies from the local machine to the remote 815 // machine running the test, or to the distributed cache. 816 UploadDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=upload_duration,json=uploadDuration,proto3" json:"upload_duration,omitempty"` 817 // Time to set up the remote machine. 818 // Not to be confused with setup time in 819 // xUnit test frameworks, which falls within the test_process_time. 820 MachineSetupDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=machine_setup_duration,json=machineSetupDuration,proto3" json:"machine_setup_duration,omitempty"` 821 // Time taken by the test process, typically surrounded by a small wrapper 822 // script. 823 // For Java tests, this includes JVM setup, flag parsing, class path setup, 824 // parsing files to setup the suite, and finally running your test methods. 825 // In many cases, only a small fraction of the test process time is spent 826 // running the test methods. 827 TestProcessDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=test_process_duration,json=testProcessDuration,proto3" json:"test_process_duration,omitempty"` 828 // Time spent retrieving test logs and any other test outputs, back to the 829 // local machine. 830 DownloadDuration *durationpb.Duration `protobuf:"bytes,5,opt,name=download_duration,json=downloadDuration,proto3" json:"download_duration,omitempty"` 831} 832 833func (x *RemoteTestAttemptTiming) Reset() { 834 *x = RemoteTestAttemptTiming{} 835 if protoimpl.UnsafeEnabled { 836 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[6] 837 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 838 ms.StoreMessageInfo(mi) 839 } 840} 841 842func (x *RemoteTestAttemptTiming) String() string { 843 return protoimpl.X.MessageStringOf(x) 844} 845 846func (*RemoteTestAttemptTiming) ProtoMessage() {} 847 848func (x *RemoteTestAttemptTiming) ProtoReflect() protoreflect.Message { 849 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[6] 850 if protoimpl.UnsafeEnabled && x != nil { 851 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 852 if ms.LoadMessageInfo() == nil { 853 ms.StoreMessageInfo(mi) 854 } 855 return ms 856 } 857 return mi.MessageOf(x) 858} 859 860// Deprecated: Use RemoteTestAttemptTiming.ProtoReflect.Descriptor instead. 861func (*RemoteTestAttemptTiming) Descriptor() ([]byte, []int) { 862 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{6} 863} 864 865func (x *RemoteTestAttemptTiming) GetQueueDuration() *durationpb.Duration { 866 if x != nil { 867 return x.QueueDuration 868 } 869 return nil 870} 871 872func (x *RemoteTestAttemptTiming) GetUploadDuration() *durationpb.Duration { 873 if x != nil { 874 return x.UploadDuration 875 } 876 return nil 877} 878 879func (x *RemoteTestAttemptTiming) GetMachineSetupDuration() *durationpb.Duration { 880 if x != nil { 881 return x.MachineSetupDuration 882 } 883 return nil 884} 885 886func (x *RemoteTestAttemptTiming) GetTestProcessDuration() *durationpb.Duration { 887 if x != nil { 888 return x.TestProcessDuration 889 } 890 return nil 891} 892 893func (x *RemoteTestAttemptTiming) GetDownloadDuration() *durationpb.Duration { 894 if x != nil { 895 return x.DownloadDuration 896 } 897 return nil 898} 899 900// Timing data for the part of the test execution that is done remotely. 901type RemoteTestTiming struct { 902 state protoimpl.MessageState 903 sizeCache protoimpl.SizeCache 904 unknownFields protoimpl.UnknownFields 905 906 // Time taken locally to determine what to do. 907 LocalAnalysisDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=local_analysis_duration,json=localAnalysisDuration,proto3" json:"local_analysis_duration,omitempty"` 908 // Normally there is only one attempt, but the system may retry on internal 909 // errors, leading to multiple attempts. 910 Attempts []*RemoteTestAttemptTiming `protobuf:"bytes,2,rep,name=attempts,proto3" json:"attempts,omitempty"` 911} 912 913func (x *RemoteTestTiming) Reset() { 914 *x = RemoteTestTiming{} 915 if protoimpl.UnsafeEnabled { 916 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[7] 917 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 918 ms.StoreMessageInfo(mi) 919 } 920} 921 922func (x *RemoteTestTiming) String() string { 923 return protoimpl.X.MessageStringOf(x) 924} 925 926func (*RemoteTestTiming) ProtoMessage() {} 927 928func (x *RemoteTestTiming) ProtoReflect() protoreflect.Message { 929 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[7] 930 if protoimpl.UnsafeEnabled && x != nil { 931 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 932 if ms.LoadMessageInfo() == nil { 933 ms.StoreMessageInfo(mi) 934 } 935 return ms 936 } 937 return mi.MessageOf(x) 938} 939 940// Deprecated: Use RemoteTestTiming.ProtoReflect.Descriptor instead. 941func (*RemoteTestTiming) Descriptor() ([]byte, []int) { 942 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{7} 943} 944 945func (x *RemoteTestTiming) GetLocalAnalysisDuration() *durationpb.Duration { 946 if x != nil { 947 return x.LocalAnalysisDuration 948 } 949 return nil 950} 951 952func (x *RemoteTestTiming) GetAttempts() []*RemoteTestAttemptTiming { 953 if x != nil { 954 return x.Attempts 955 } 956 return nil 957} 958 959// Timing data for execution of a test action. The action may be performed 960// locally, on the machine running the build, or remotely. 961type TestTiming struct { 962 state protoimpl.MessageState 963 sizeCache protoimpl.SizeCache 964 unknownFields protoimpl.UnknownFields 965 966 // Test timing for either a local or remote execution. 967 // 968 // Types that are assignable to Location: 969 // *TestTiming_Local 970 // *TestTiming_Remote 971 Location isTestTiming_Location `protobuf_oneof:"location"` 972 // The amount of CPU time spent by the test process executing system calls 973 // within the kernel, as opposed to library code. Time the test process spent 974 // blocked does not count towards this figure. 975 SystemTimeDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=system_time_duration,json=systemTimeDuration,proto3" json:"system_time_duration,omitempty"` 976 // The amount of CPU time spent by the test process executing user-mode code 977 // outside the kernel, as opposed to library code. Time the test process 978 // spent blocked does not count towards this figure. You can add user_time to 979 // system_time to get total CPU time taken by the test process. 980 UserTimeDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=user_time_duration,json=userTimeDuration,proto3" json:"user_time_duration,omitempty"` 981 // Most build systems cache build results to speed up incremental builds. 982 // Some also cache test results too. This indicates whether the test results 983 // were found in a cache, and where that cache was located. 984 TestCaching TestCaching `protobuf:"varint,5,opt,name=test_caching,json=testCaching,proto3,enum=google.devtools.resultstore.v2.TestCaching" json:"test_caching,omitempty"` 985} 986 987func (x *TestTiming) Reset() { 988 *x = TestTiming{} 989 if protoimpl.UnsafeEnabled { 990 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[8] 991 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 992 ms.StoreMessageInfo(mi) 993 } 994} 995 996func (x *TestTiming) String() string { 997 return protoimpl.X.MessageStringOf(x) 998} 999 1000func (*TestTiming) ProtoMessage() {} 1001 1002func (x *TestTiming) ProtoReflect() protoreflect.Message { 1003 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[8] 1004 if protoimpl.UnsafeEnabled && x != nil { 1005 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1006 if ms.LoadMessageInfo() == nil { 1007 ms.StoreMessageInfo(mi) 1008 } 1009 return ms 1010 } 1011 return mi.MessageOf(x) 1012} 1013 1014// Deprecated: Use TestTiming.ProtoReflect.Descriptor instead. 1015func (*TestTiming) Descriptor() ([]byte, []int) { 1016 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{8} 1017} 1018 1019func (m *TestTiming) GetLocation() isTestTiming_Location { 1020 if m != nil { 1021 return m.Location 1022 } 1023 return nil 1024} 1025 1026func (x *TestTiming) GetLocal() *LocalTestTiming { 1027 if x, ok := x.GetLocation().(*TestTiming_Local); ok { 1028 return x.Local 1029 } 1030 return nil 1031} 1032 1033func (x *TestTiming) GetRemote() *RemoteTestTiming { 1034 if x, ok := x.GetLocation().(*TestTiming_Remote); ok { 1035 return x.Remote 1036 } 1037 return nil 1038} 1039 1040func (x *TestTiming) GetSystemTimeDuration() *durationpb.Duration { 1041 if x != nil { 1042 return x.SystemTimeDuration 1043 } 1044 return nil 1045} 1046 1047func (x *TestTiming) GetUserTimeDuration() *durationpb.Duration { 1048 if x != nil { 1049 return x.UserTimeDuration 1050 } 1051 return nil 1052} 1053 1054func (x *TestTiming) GetTestCaching() TestCaching { 1055 if x != nil { 1056 return x.TestCaching 1057 } 1058 return TestCaching_TEST_CACHING_UNSPECIFIED 1059} 1060 1061type isTestTiming_Location interface { 1062 isTestTiming_Location() 1063} 1064 1065type TestTiming_Local struct { 1066 // Used for local test actions. 1067 Local *LocalTestTiming `protobuf:"bytes,1,opt,name=local,proto3,oneof"` 1068} 1069 1070type TestTiming_Remote struct { 1071 // Used for remote test actions. 1072 Remote *RemoteTestTiming `protobuf:"bytes,2,opt,name=remote,proto3,oneof"` 1073} 1074 1075func (*TestTiming_Local) isTestTiming_Location() {} 1076 1077func (*TestTiming_Remote) isTestTiming_Location() {} 1078 1079// A warning from a test execution. 1080type TestWarning struct { 1081 state protoimpl.MessageState 1082 sizeCache protoimpl.SizeCache 1083 unknownFields protoimpl.UnknownFields 1084 1085 // Contains the message detailing the warning. 1086 WarningMessage string `protobuf:"bytes,1,opt,name=warning_message,json=warningMessage,proto3" json:"warning_message,omitempty"` 1087} 1088 1089func (x *TestWarning) Reset() { 1090 *x = TestWarning{} 1091 if protoimpl.UnsafeEnabled { 1092 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[9] 1093 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1094 ms.StoreMessageInfo(mi) 1095 } 1096} 1097 1098func (x *TestWarning) String() string { 1099 return protoimpl.X.MessageStringOf(x) 1100} 1101 1102func (*TestWarning) ProtoMessage() {} 1103 1104func (x *TestWarning) ProtoReflect() protoreflect.Message { 1105 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[9] 1106 if protoimpl.UnsafeEnabled && x != nil { 1107 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1108 if ms.LoadMessageInfo() == nil { 1109 ms.StoreMessageInfo(mi) 1110 } 1111 return ms 1112 } 1113 return mi.MessageOf(x) 1114} 1115 1116// Deprecated: Use TestWarning.ProtoReflect.Descriptor instead. 1117func (*TestWarning) Descriptor() ([]byte, []int) { 1118 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{9} 1119} 1120 1121func (x *TestWarning) GetWarningMessage() string { 1122 if x != nil { 1123 return x.WarningMessage 1124 } 1125 return "" 1126} 1127 1128// The resource ID components that identify the Action. 1129type Action_Id struct { 1130 state protoimpl.MessageState 1131 sizeCache protoimpl.SizeCache 1132 unknownFields protoimpl.UnknownFields 1133 1134 // The Invocation ID. 1135 InvocationId string `protobuf:"bytes,1,opt,name=invocation_id,json=invocationId,proto3" json:"invocation_id,omitempty"` 1136 // The Target ID. 1137 TargetId string `protobuf:"bytes,2,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` 1138 // The Configuration ID. 1139 ConfigurationId string `protobuf:"bytes,3,opt,name=configuration_id,json=configurationId,proto3" json:"configuration_id,omitempty"` 1140 // The Action ID. 1141 ActionId string `protobuf:"bytes,4,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"` 1142} 1143 1144func (x *Action_Id) Reset() { 1145 *x = Action_Id{} 1146 if protoimpl.UnsafeEnabled { 1147 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[10] 1148 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1149 ms.StoreMessageInfo(mi) 1150 } 1151} 1152 1153func (x *Action_Id) String() string { 1154 return protoimpl.X.MessageStringOf(x) 1155} 1156 1157func (*Action_Id) ProtoMessage() {} 1158 1159func (x *Action_Id) ProtoReflect() protoreflect.Message { 1160 mi := &file_google_devtools_resultstore_v2_action_proto_msgTypes[10] 1161 if protoimpl.UnsafeEnabled && x != nil { 1162 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1163 if ms.LoadMessageInfo() == nil { 1164 ms.StoreMessageInfo(mi) 1165 } 1166 return ms 1167 } 1168 return mi.MessageOf(x) 1169} 1170 1171// Deprecated: Use Action_Id.ProtoReflect.Descriptor instead. 1172func (*Action_Id) Descriptor() ([]byte, []int) { 1173 return file_google_devtools_resultstore_v2_action_proto_rawDescGZIP(), []int{0, 0} 1174} 1175 1176func (x *Action_Id) GetInvocationId() string { 1177 if x != nil { 1178 return x.InvocationId 1179 } 1180 return "" 1181} 1182 1183func (x *Action_Id) GetTargetId() string { 1184 if x != nil { 1185 return x.TargetId 1186 } 1187 return "" 1188} 1189 1190func (x *Action_Id) GetConfigurationId() string { 1191 if x != nil { 1192 return x.ConfigurationId 1193 } 1194 return "" 1195} 1196 1197func (x *Action_Id) GetActionId() string { 1198 if x != nil { 1199 return x.ActionId 1200 } 1201 return "" 1202} 1203 1204var File_google_devtools_resultstore_v2_action_proto protoreflect.FileDescriptor 1205 1206var file_google_devtools_resultstore_v2_action_proto_rawDesc = []byte{ 1207 0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 1208 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 1209 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 1210 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 1211 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x1a, 0x2b, 0x67, 1212 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 1213 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 1214 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 1215 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 1216 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x76, 0x65, 0x72, 1217 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1218 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 1219 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 1220 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 1221 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 1222 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 1223 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1224 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 1225 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 1226 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1227 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1228 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1229 0x6f, 0x22, 0xce, 0x08, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 1230 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1231 0x12, 0x39, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 1232 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 1233 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 1234 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5d, 0x0a, 0x11, 0x73, 1235 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 1236 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1237 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 1238 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x74, 1239 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 1240 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x69, 1241 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 1242 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 1243 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x69, 1244 0x6e, 0x67, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x0c, 0x62, 0x75, 1245 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 1246 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 1247 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 1248 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 1249 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x0b, 1250 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 1251 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 1252 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 1253 0x76, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 1254 0x0a, 0x74, 0x65, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x11, 0x61, 1255 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 1256 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1257 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 1258 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 1259 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 1260 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x13, 0x61, 0x63, 1261 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 1262 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1263 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 1264 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 1265 0x6e, 0x63, 0x79, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 1266 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 1267 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 1268 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 1269 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 1270 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 1271 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 1272 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 1273 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 1274 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 1275 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 1276 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x08, 0x63, 0x6f, 1277 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 1278 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 1279 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 1280 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x08, 0x63, 0x6f, 1281 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x6a, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 1282 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 1283 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1284 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 1285 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x63, 1286 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x14, 0x66, 0x69, 1287 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 1288 0x72, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x02, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 1289 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1290 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1b, 1291 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 1292 0x09, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 1293 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 1294 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 1295 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 1296 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 1297 0x6e, 0x49, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 1298 0x70, 0x65, 0x22, 0x7f, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 1299 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1300 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 1301 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 1302 0x09, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 1303 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6f, 1304 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 1305 0x52, 0x11, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 1306 0x61, 0x74, 0x68, 0x22, 0x8b, 0x03, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 1307 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 1308 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1309 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 1310 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 1311 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 1312 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 1313 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x62, 1314 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 1315 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 1316 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 1317 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x65, 0x6d, 1318 0x70, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 1319 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 1320 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 1321 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 1322 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 1323 0x74, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 1324 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 1325 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 1326 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 1327 0x67, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x65, 1328 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 1329 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x65, 0x73, 0x74, 1330 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x74, 0x65, 1331 0x73, 0x22, 0x84, 0x02, 0x0a, 0x10, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 1332 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 1333 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 1334 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 1335 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 1336 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 1337 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 1338 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 1339 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 1340 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 1341 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 1342 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 1343 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 1344 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 1345 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x70, 0x75, 1346 0x74, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 1347 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc4, 0x01, 0x0a, 0x0d, 0x49, 0x6e, 0x70, 1348 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 1349 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 1350 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x75, 1351 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 1352 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 1353 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 1354 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x74, 1355 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 1356 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 1357 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 1358 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, 0x69, 1359 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x42, 0x79, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 1360 0x60, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x69, 1361 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 1362 0x73, 0x73, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 1363 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1364 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x74, 0x65, 1365 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 1366 0x6e, 0x22, 0x87, 0x03, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 1367 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x40, 0x0a, 1368 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 1369 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1370 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1371 0x52, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 1372 0x42, 0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 1373 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1374 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 1375 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 1376 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x16, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 1377 0x65, 0x74, 0x75, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 1378 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1379 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 1380 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x74, 0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 1381 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 1382 0x63, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 1383 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1384 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 1385 0x74, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x75, 0x72, 0x61, 0x74, 1386 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 1387 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 1388 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1389 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 1390 0x6f, 0x61, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xba, 0x01, 0x0a, 0x10, 1391 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 1392 0x12, 0x51, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 1393 0x69, 0x73, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 1394 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1395 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6c, 0x6f, 1396 0x63, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x44, 0x75, 0x72, 0x61, 0x74, 1397 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 1398 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 1399 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 1400 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x65, 0x73, 1401 0x74, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x08, 1402 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x22, 0x93, 0x03, 0x0a, 0x0a, 0x54, 0x65, 0x73, 1403 0x74, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 1404 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1405 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 1406 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x65, 0x73, 1407 0x74, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 1408 0x12, 0x4a, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 1409 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 1410 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 1411 0x32, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x69, 1412 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x14, 1413 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 1414 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 1415 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 1416 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 1417 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x12, 0x75, 0x73, 0x65, 1418 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 1419 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1420 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1421 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 1422 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x69, 1423 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1424 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 1425 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 1426 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x63, 0x68, 0x69, 1427 0x6e, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x36, 1428 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 1429 0x0f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 1430 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 1431 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x8c, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x65, 0x63, 0x75, 1432 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x22, 0x0a, 0x1e, 1433 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 1434 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 1435 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 1436 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x4d, 0x4f, 0x54, 1437 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 1438 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4c, 0x4c, 0x45, 0x4c, 0x10, 0x03, 0x12, 1439 0x14, 0x0a, 0x10, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x54, 1440 0x49, 0x41, 0x4c, 0x10, 0x04, 0x2a, 0x66, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x63, 1441 0x68, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x41, 0x43, 1442 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 1443 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x43, 0x41, 0x43, 0x48, 1444 0x45, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x4d, 0x4f, 0x54, 1445 0x45, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 1446 0x0a, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x03, 0x42, 0x71, 0x0a, 1447 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 1448 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 1449 0x2e, 0x76, 0x32, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 1450 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 1451 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 1452 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 1453 0x65, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 1454 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1455} 1456 1457var ( 1458 file_google_devtools_resultstore_v2_action_proto_rawDescOnce sync.Once 1459 file_google_devtools_resultstore_v2_action_proto_rawDescData = file_google_devtools_resultstore_v2_action_proto_rawDesc 1460) 1461 1462func file_google_devtools_resultstore_v2_action_proto_rawDescGZIP() []byte { 1463 file_google_devtools_resultstore_v2_action_proto_rawDescOnce.Do(func() { 1464 file_google_devtools_resultstore_v2_action_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_resultstore_v2_action_proto_rawDescData) 1465 }) 1466 return file_google_devtools_resultstore_v2_action_proto_rawDescData 1467} 1468 1469var file_google_devtools_resultstore_v2_action_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 1470var file_google_devtools_resultstore_v2_action_proto_msgTypes = make([]protoimpl.MessageInfo, 11) 1471var file_google_devtools_resultstore_v2_action_proto_goTypes = []interface{}{ 1472 (ExecutionStrategy)(0), // 0: google.devtools.resultstore.v2.ExecutionStrategy 1473 (TestCaching)(0), // 1: google.devtools.resultstore.v2.TestCaching 1474 (*Action)(nil), // 2: google.devtools.resultstore.v2.Action 1475 (*BuildAction)(nil), // 3: google.devtools.resultstore.v2.BuildAction 1476 (*TestAction)(nil), // 4: google.devtools.resultstore.v2.TestAction 1477 (*ActionAttributes)(nil), // 5: google.devtools.resultstore.v2.ActionAttributes 1478 (*InputFileInfo)(nil), // 6: google.devtools.resultstore.v2.InputFileInfo 1479 (*LocalTestTiming)(nil), // 7: google.devtools.resultstore.v2.LocalTestTiming 1480 (*RemoteTestAttemptTiming)(nil), // 8: google.devtools.resultstore.v2.RemoteTestAttemptTiming 1481 (*RemoteTestTiming)(nil), // 9: google.devtools.resultstore.v2.RemoteTestTiming 1482 (*TestTiming)(nil), // 10: google.devtools.resultstore.v2.TestTiming 1483 (*TestWarning)(nil), // 11: google.devtools.resultstore.v2.TestWarning 1484 (*Action_Id)(nil), // 12: google.devtools.resultstore.v2.Action.Id 1485 (*StatusAttributes)(nil), // 13: google.devtools.resultstore.v2.StatusAttributes 1486 (*Timing)(nil), // 14: google.devtools.resultstore.v2.Timing 1487 (*Dependency)(nil), // 15: google.devtools.resultstore.v2.Dependency 1488 (*Property)(nil), // 16: google.devtools.resultstore.v2.Property 1489 (*File)(nil), // 17: google.devtools.resultstore.v2.File 1490 (*ActionCoverage)(nil), // 18: google.devtools.resultstore.v2.ActionCoverage 1491 (*FileProcessingErrors)(nil), // 19: google.devtools.resultstore.v2.FileProcessingErrors 1492 (*TestSuite)(nil), // 20: google.devtools.resultstore.v2.TestSuite 1493 (*durationpb.Duration)(nil), // 21: google.protobuf.Duration 1494} 1495var file_google_devtools_resultstore_v2_action_proto_depIdxs = []int32{ 1496 12, // 0: google.devtools.resultstore.v2.Action.id:type_name -> google.devtools.resultstore.v2.Action.Id 1497 13, // 1: google.devtools.resultstore.v2.Action.status_attributes:type_name -> google.devtools.resultstore.v2.StatusAttributes 1498 14, // 2: google.devtools.resultstore.v2.Action.timing:type_name -> google.devtools.resultstore.v2.Timing 1499 3, // 3: google.devtools.resultstore.v2.Action.build_action:type_name -> google.devtools.resultstore.v2.BuildAction 1500 4, // 4: google.devtools.resultstore.v2.Action.test_action:type_name -> google.devtools.resultstore.v2.TestAction 1501 5, // 5: google.devtools.resultstore.v2.Action.action_attributes:type_name -> google.devtools.resultstore.v2.ActionAttributes 1502 15, // 6: google.devtools.resultstore.v2.Action.action_dependencies:type_name -> google.devtools.resultstore.v2.Dependency 1503 16, // 7: google.devtools.resultstore.v2.Action.properties:type_name -> google.devtools.resultstore.v2.Property 1504 17, // 8: google.devtools.resultstore.v2.Action.files:type_name -> google.devtools.resultstore.v2.File 1505 18, // 9: google.devtools.resultstore.v2.Action.coverage:type_name -> google.devtools.resultstore.v2.ActionCoverage 1506 19, // 10: google.devtools.resultstore.v2.Action.file_processing_errors:type_name -> google.devtools.resultstore.v2.FileProcessingErrors 1507 10, // 11: google.devtools.resultstore.v2.TestAction.test_timing:type_name -> google.devtools.resultstore.v2.TestTiming 1508 20, // 12: google.devtools.resultstore.v2.TestAction.test_suite:type_name -> google.devtools.resultstore.v2.TestSuite 1509 11, // 13: google.devtools.resultstore.v2.TestAction.warnings:type_name -> google.devtools.resultstore.v2.TestWarning 1510 0, // 14: google.devtools.resultstore.v2.ActionAttributes.execution_strategy:type_name -> google.devtools.resultstore.v2.ExecutionStrategy 1511 6, // 15: google.devtools.resultstore.v2.ActionAttributes.input_file_info:type_name -> google.devtools.resultstore.v2.InputFileInfo 1512 21, // 16: google.devtools.resultstore.v2.LocalTestTiming.test_process_duration:type_name -> google.protobuf.Duration 1513 21, // 17: google.devtools.resultstore.v2.RemoteTestAttemptTiming.queue_duration:type_name -> google.protobuf.Duration 1514 21, // 18: google.devtools.resultstore.v2.RemoteTestAttemptTiming.upload_duration:type_name -> google.protobuf.Duration 1515 21, // 19: google.devtools.resultstore.v2.RemoteTestAttemptTiming.machine_setup_duration:type_name -> google.protobuf.Duration 1516 21, // 20: google.devtools.resultstore.v2.RemoteTestAttemptTiming.test_process_duration:type_name -> google.protobuf.Duration 1517 21, // 21: google.devtools.resultstore.v2.RemoteTestAttemptTiming.download_duration:type_name -> google.protobuf.Duration 1518 21, // 22: google.devtools.resultstore.v2.RemoteTestTiming.local_analysis_duration:type_name -> google.protobuf.Duration 1519 8, // 23: google.devtools.resultstore.v2.RemoteTestTiming.attempts:type_name -> google.devtools.resultstore.v2.RemoteTestAttemptTiming 1520 7, // 24: google.devtools.resultstore.v2.TestTiming.local:type_name -> google.devtools.resultstore.v2.LocalTestTiming 1521 9, // 25: google.devtools.resultstore.v2.TestTiming.remote:type_name -> google.devtools.resultstore.v2.RemoteTestTiming 1522 21, // 26: google.devtools.resultstore.v2.TestTiming.system_time_duration:type_name -> google.protobuf.Duration 1523 21, // 27: google.devtools.resultstore.v2.TestTiming.user_time_duration:type_name -> google.protobuf.Duration 1524 1, // 28: google.devtools.resultstore.v2.TestTiming.test_caching:type_name -> google.devtools.resultstore.v2.TestCaching 1525 29, // [29:29] is the sub-list for method output_type 1526 29, // [29:29] is the sub-list for method input_type 1527 29, // [29:29] is the sub-list for extension type_name 1528 29, // [29:29] is the sub-list for extension extendee 1529 0, // [0:29] is the sub-list for field type_name 1530} 1531 1532func init() { file_google_devtools_resultstore_v2_action_proto_init() } 1533func file_google_devtools_resultstore_v2_action_proto_init() { 1534 if File_google_devtools_resultstore_v2_action_proto != nil { 1535 return 1536 } 1537 file_google_devtools_resultstore_v2_common_proto_init() 1538 file_google_devtools_resultstore_v2_coverage_proto_init() 1539 file_google_devtools_resultstore_v2_file_proto_init() 1540 file_google_devtools_resultstore_v2_file_processing_error_proto_init() 1541 file_google_devtools_resultstore_v2_test_suite_proto_init() 1542 if !protoimpl.UnsafeEnabled { 1543 file_google_devtools_resultstore_v2_action_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1544 switch v := v.(*Action); i { 1545 case 0: 1546 return &v.state 1547 case 1: 1548 return &v.sizeCache 1549 case 2: 1550 return &v.unknownFields 1551 default: 1552 return nil 1553 } 1554 } 1555 file_google_devtools_resultstore_v2_action_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1556 switch v := v.(*BuildAction); i { 1557 case 0: 1558 return &v.state 1559 case 1: 1560 return &v.sizeCache 1561 case 2: 1562 return &v.unknownFields 1563 default: 1564 return nil 1565 } 1566 } 1567 file_google_devtools_resultstore_v2_action_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1568 switch v := v.(*TestAction); i { 1569 case 0: 1570 return &v.state 1571 case 1: 1572 return &v.sizeCache 1573 case 2: 1574 return &v.unknownFields 1575 default: 1576 return nil 1577 } 1578 } 1579 file_google_devtools_resultstore_v2_action_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1580 switch v := v.(*ActionAttributes); i { 1581 case 0: 1582 return &v.state 1583 case 1: 1584 return &v.sizeCache 1585 case 2: 1586 return &v.unknownFields 1587 default: 1588 return nil 1589 } 1590 } 1591 file_google_devtools_resultstore_v2_action_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1592 switch v := v.(*InputFileInfo); i { 1593 case 0: 1594 return &v.state 1595 case 1: 1596 return &v.sizeCache 1597 case 2: 1598 return &v.unknownFields 1599 default: 1600 return nil 1601 } 1602 } 1603 file_google_devtools_resultstore_v2_action_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1604 switch v := v.(*LocalTestTiming); i { 1605 case 0: 1606 return &v.state 1607 case 1: 1608 return &v.sizeCache 1609 case 2: 1610 return &v.unknownFields 1611 default: 1612 return nil 1613 } 1614 } 1615 file_google_devtools_resultstore_v2_action_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1616 switch v := v.(*RemoteTestAttemptTiming); i { 1617 case 0: 1618 return &v.state 1619 case 1: 1620 return &v.sizeCache 1621 case 2: 1622 return &v.unknownFields 1623 default: 1624 return nil 1625 } 1626 } 1627 file_google_devtools_resultstore_v2_action_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1628 switch v := v.(*RemoteTestTiming); i { 1629 case 0: 1630 return &v.state 1631 case 1: 1632 return &v.sizeCache 1633 case 2: 1634 return &v.unknownFields 1635 default: 1636 return nil 1637 } 1638 } 1639 file_google_devtools_resultstore_v2_action_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1640 switch v := v.(*TestTiming); i { 1641 case 0: 1642 return &v.state 1643 case 1: 1644 return &v.sizeCache 1645 case 2: 1646 return &v.unknownFields 1647 default: 1648 return nil 1649 } 1650 } 1651 file_google_devtools_resultstore_v2_action_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1652 switch v := v.(*TestWarning); i { 1653 case 0: 1654 return &v.state 1655 case 1: 1656 return &v.sizeCache 1657 case 2: 1658 return &v.unknownFields 1659 default: 1660 return nil 1661 } 1662 } 1663 file_google_devtools_resultstore_v2_action_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 1664 switch v := v.(*Action_Id); i { 1665 case 0: 1666 return &v.state 1667 case 1: 1668 return &v.sizeCache 1669 case 2: 1670 return &v.unknownFields 1671 default: 1672 return nil 1673 } 1674 } 1675 } 1676 file_google_devtools_resultstore_v2_action_proto_msgTypes[0].OneofWrappers = []interface{}{ 1677 (*Action_BuildAction)(nil), 1678 (*Action_TestAction)(nil), 1679 } 1680 file_google_devtools_resultstore_v2_action_proto_msgTypes[8].OneofWrappers = []interface{}{ 1681 (*TestTiming_Local)(nil), 1682 (*TestTiming_Remote)(nil), 1683 } 1684 type x struct{} 1685 out := protoimpl.TypeBuilder{ 1686 File: protoimpl.DescBuilder{ 1687 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1688 RawDescriptor: file_google_devtools_resultstore_v2_action_proto_rawDesc, 1689 NumEnums: 2, 1690 NumMessages: 11, 1691 NumExtensions: 0, 1692 NumServices: 0, 1693 }, 1694 GoTypes: file_google_devtools_resultstore_v2_action_proto_goTypes, 1695 DependencyIndexes: file_google_devtools_resultstore_v2_action_proto_depIdxs, 1696 EnumInfos: file_google_devtools_resultstore_v2_action_proto_enumTypes, 1697 MessageInfos: file_google_devtools_resultstore_v2_action_proto_msgTypes, 1698 }.Build() 1699 File_google_devtools_resultstore_v2_action_proto = out.File 1700 file_google_devtools_resultstore_v2_action_proto_rawDesc = nil 1701 file_google_devtools_resultstore_v2_action_proto_goTypes = nil 1702 file_google_devtools_resultstore_v2_action_proto_depIdxs = nil 1703} 1704