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