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