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